水豚无法通过 id 找到元素
Capybara can not find element by id
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'
我错过了什么?
我想,是时候更新水豚了。
而且,我现在无法测试,但请尝试 page.html.find('#notice_sent')
默认情况下,Capybara 不会查找页面上不可见的元素。你可以试试
page.find('#notice_sent', visible: :all)
看看是不是这样。如果是这样,并且您正在测试应用程序,那么您应该执行用户将要执行的使该元素可见的任何操作,然后检查它是否存在。
虽然我是 Capybara 的新手,但我认为这可能适合你!!
page.find('#notice_sent', :visible => false)
此外,将此代码添加到您的 env.rb
文件中。
Capybara.ignore_hidden_elements = false
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'
我错过了什么?
我想,是时候更新水豚了。
而且,我现在无法测试,但请尝试 page.html.find('#notice_sent')
默认情况下,Capybara 不会查找页面上不可见的元素。你可以试试
page.find('#notice_sent', visible: :all)
看看是不是这样。如果是这样,并且您正在测试应用程序,那么您应该执行用户将要执行的使该元素可见的任何操作,然后检查它是否存在。
虽然我是 Capybara 的新手,但我认为这可能适合你!!
page.find('#notice_sent', :visible => false)
此外,将此代码添加到您的 env.rb
文件中。
Capybara.ignore_hidden_elements = false