Capybara找不到id的元素

时间:2016-03-22 15:41:29

标签: ruby cucumber capybara

在我的黄瓜测试中,Capybara无法通过它的id找到<p>标签。我save_and_open_page时能够看到元素。但我找不到has_css?find

pry(#<Object>)> page.html.scan(/notice_sent/).count
=> 1
pry(#<Object>)> page.html.scan(/id=\"notice_sent\"/).count
=> 1
pry(#<Object>)> page.find('#notice_sent')
Capybara::ElementNotFound: Unable to find css "#notice_sent"
from /Users/me/.gem/ruby/2.1.7/gems/capybara-2.4.4/lib/capybara/node/finders.rb:41:in 'block in find'

我错过了什么?

3 个答案:

答案 0 :(得分:12)

默认情况下,Capybara找不到页面上不可见的元素。你可以尝试

page.find('#notice_sent', visible: :all)

看看是否是这种情况。如果是这样,并且您正在测试应用程序,那么您应该执行用户将执行的任何操作以使该元素可见,然后检查其存在。

答案 1 :(得分:2)

虽然我是Capybara的新手,但我认为这对你有用!!

page.find('#notice_sent', :visible => false)

另外,请将此代码添加到env.rb文件中。

Capybara.ignore_hidden_elements = false

答案 2 :(得分:-1)

我认为,现在是时候更新水豚了。

而且,我现在无法测试,但请尝试page.html.find('#notice_sent')