Cucumber 用妖怪/水豚寻找_场
我对恶鬼有意见。我无法让驱动程序在页面上找到字段。我想做的是在开始添加新文本之前执行一些js以确保输入字段为空。我有一个标签为os“技能列表”的字段,id为“用户技能列表”。为了使步骤更通用,我希望通过标签名找到字段,然后获取idCucumber 用妖怪/水豚寻找_场,cucumber,capybara,poltergeist,Cucumber,Capybara,Poltergeist,我对恶鬼有意见。我无法让驱动程序在页面上找到字段。我想做的是在开始添加新文本之前执行一些js以确保输入字段为空。我有一个标签为os“技能列表”的字段,id为“用户技能列表”。为了使步骤更通用,我希望通过标签名找到字段,然后获取id And(/^I delete the content of "([^"]*)"$/) do |label| field_id = page.find_field(label).native.attributes['id'].value page.execute
And(/^I delete the content of "([^"]*)"$/) do |label|
field_id = page.find_field(label).native.attributes['id'].value
page.execute_script("$('#{field_id}').val('');")
end
以下是错误消息:
@javascript
Scenario: Update user by removing # features/godmin/skills.feature:36
Given "Thomas" skills are "rspec, testing" # features/step_definitions/godmin_steps.rb:63
And I click on "Edit" for "Thomas" # features/step_definitions/godmin_steps.rb:43
And I delete the content of "Skill list" # features/step_definitions/godmin_steps.rb:69
Unable to find field "Skill list" (Capybara::ElementNotFound)
./features/step_definitions/godmin_steps.rb:70:in `/^I delete the content of "([^"]*)"$/'
features/godmin/skills.feature:39:in `And I delete the content of "Skill list"'
```
我的黄瓜设置非常基本
# features/support/env.rb
...
require 'capybara/poltergeist'
Capybara.javascript_driver = :poltergeist
Capybara.default_max_wait_time = 5
...
多谢各位。如果我需要澄清我的问题,请告诉我 假设您的html是
<label for="user_skill_list">Skill list</label>
<input id="user_skill_list"/>
你应该找到这个领域,并清除它。如果它找不到元素,有两种可能
page.find\u字段('user\u skill\u list')来测试这一点。设置(“”)
,这样标签就不涉及了注意:您只需执行
页面。查找字段('Skill list')[:id]
即可获得id,而不必求助于.native.xxxx-尽管此用例实际上并不需要它请显示相关的HTMLTank you Tom!我错过了字段上的style=“display:none;”“
。它被一些js修改了,我没有仔细检查代码。你给我指明了正确的方向。
page.find_field('Skill list').set('')