ruby-on-rails – 如何使用Capybara结合发现和内部?

以下工作如预期:
within('h2',text: 'foo') do
      should have_content 'bar'
 end

我试图检查父元素,使用find(:xpath,’..’)

一旦你找到一个元素,如何应用.find(:xpath,’..’),然后检查该元素内的东西?

解决方法

当您使用XPath定位器内部时,应该从它开始. (如果没有开始,搜索不是在.myclass内部,而是在整个文档内).

例如.:

within('.myclass') do
  find(:xpath,'./div')
end

要么:

find('.myclass').find(:xpath,'./div')

@ BSeven答案的代码可以写成一行:

expect(find("//h2[text()='foo']/..")).to have_text('bar')

要么

expect(page).to have_xpath("//h2[.='foo']/..",text: 'bar')

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...