Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cucumber 用妖怪/水豚寻找_场_Cucumber_Capybara_Poltergeist - Fatal编程技术网

Cucumber 用妖怪/水豚寻找_场

Cucumber 用妖怪/水豚寻找_场,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

我对恶鬼有意见。我无法让驱动程序在页面上找到字段。我想做的是在开始添加新文本之前执行一些js以确保输入字段为空。我有一个标签为os“技能列表”的字段,id为“用户技能列表”。为了使步骤更通用,我希望通过标签名找到字段,然后获取id

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"/>
你应该找到这个领域,并清除它。如果它找不到元素,有两种可能

  • 该元素在页面上不可见

  • 正在应用的CSS正在改变“技能列表”的情况

  • html中存在输入错误,因此标签实际上与字段没有关联。您可以通过执行
    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('')