以下按预期工作:
within('h2', text: 'foo') do
should have_content 'bar'
end
我正在尝试检查父元素,使用find(:xpath, '..')
一旦找到一个元素,如何应用.find(:xpath, '..')
,然后检查该元素中的某些内容?
以下按预期工作:
within('h2', text: 'foo') do
should have_content 'bar'
end
我正在尝试检查父元素,使用find(:xpath, '..')
一旦找到一个元素,如何应用.find(:xpath, '..')
,然后检查该元素中的某些内容?
当您在其中使用 XPath 定位器时,within
它应该以.
(如果它不以.
搜索不是在整个文档内.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')
使用 2.11 之后的 Rspec 新语法,应该是;
within('h2', text: 'foo') do |h|
expect(h).to have_content 'bar'
end
以下是一种方法:
within('h2', text: 'foo') do
within(:xpath, '..') do
should have_content 'bar'
end
end