預期以下工作:如何結合查找和內使用水豚?
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')
如果我使用'./p [@ class = test]''它找不到,如果我使用''// p [@ class = test]''它匹配的相同元素和父元素外的另一個元素..請幫助 – pahnin
它與'。p [@ class = test]' – pahnin
'。/'完美合作,謝謝! – thewoolleyman
下面是一個方法:
within('h2', text: 'foo') do
within(:xpath, '..') do
should have_content 'bar'
end
end
同樣可以在一行中完成:'find(「// h2 [text()='foo']/..」)。should have_content'bar'' –
使用RSpec的2.11之後的新語法,是應該的;
within('h2', text: 'foo') do |h|
expect(h).to have_content 'bar'
end
爲什麼不使用單個XPath語句? –
我發現''h2',文字:'foo''更具可讀性。 –
我指的是您的最後一句話:您可以使用單個XPath,而不是應用一個XPath,然後使用另一個XPath。 –