Capybara,在css元素中找到

ard*_*vis 17 testing ruby-on-rails cucumber capybara

我正在使用Ruby on Rails 3,Cucumber和Capybara

我已经搜索了一段时间,我无法弄清楚如何在css标签中找到特定的页面元素.在我的情况下,我需要确保在表格中找到名称,而不是在"欢迎[名称]"中.

我尝试过类似的东西:

within('table') do
  page.body.index("[Name]")
end
Run Code Online (Sandbox Code Playgroud)

我有一张桌子id='table'.

但我想知道如何为任何css元素执行此操作,例如:

within('h2') do
  page.body.should have_content ('stuff')
end
Run Code Online (Sandbox Code Playgroud)

我认为我的问题与page.body有关,但我不确定如何将其包含在特定的css标签中.

提前致谢!

Dyl*_*kow 33

Capybara的within匹配器仅匹配第一个结果,因此如果您有多个h2标签,它只会查看第一个结果.

相反,尝试have_css使用该:text选项.

page.should have_css("#table", :text => "[Name]")
page.should have_css('h2', :text => 'stuff')
Run Code Online (Sandbox Code Playgroud)


Pau*_*ves 12

要查找特定元素:

page.find('#table').should have_text('stuff')
Run Code Online (Sandbox Code Playgroud)

  • 不再支持have_text.使用page.find("#table").应该有has_content('stuff'). (5认同)