Capybara,在css元素中找到
我正在使用Ruby on Rails 3,Cucumber和Capybara
我已经搜索了相当长的一段时间,我无法弄清楚如何在css标签中找到特定的页面元素。 在我的例子中,我需要确保在表格中找到名称,而不是在“欢迎[名称]”中。
我试过类似的东西:
within('table') do page.body.index("[Name]") end
我有一个id='table'
。
但我想知道如何为任何css元素执行此操作,例如:
within('h2') do page.body.should have_content ('stuff') end
我认为我的问题与page.body有关,但我不确定如何将其包含在特定的css标签中。
提前致谢!
匹配器within
Capybara只匹配第一个结果,所以如果你有多个h2
标签,它只会查看第一个结果。
相反,尝试使用:text
选项的have_css
。
page.should have_css("#table", :text => "[Name]") page.should have_css('h2', :text => 'stuff')
要查找特定元素:
page.find('#table').should have_text('stuff')
我猜所有答案都应该有效,但现在Capybara不再使用它应该使用expect
expect(page).to have_css("#table", :text => "[Name]") expect(page).to have_css('h2', :text => 'stuff')
我做过这样的事情: page.all(:css, 'button.btn-primary.days.active').size.should == 1
检查是否存在包含特定类集的任何元素。
我不需要查找元素的特定文本值。 我只是想确保元素的存在,以及它们中有多少元素。