在與水豚玩了一下後,看起來好像父方法返回了整個html文件
e = find "table > thead"
=> #<Capybara::Element tag="thead">
e.parent
=> #<Capybara::Document>
的水豚的默認選擇類型爲CSS和不支持的家長選擇 這可能是值得看的XPath如使用XPath可以執行包含
e = find :xpath, "//table[thead]"
=> #<Capybara::Element tag="table">
e = find :xpath, "//table[thead]", text: "TOTAL"
=> #<Capybara::Element tag="table">
所以找在你的代碼中你可以嘗試這樣的:
e = find :xpath, "//tr[td[contains(text(),'Bob Perkins')]]"
=> #<Capybara::Element tag="tr">
OR
e = find :xpath, "//tr[td]", text: 'Bob Perkins'
=> #<Capybara::Element tag="tr">
所以,你應該得到這樣的事情
within find(:xpath, "//tr[td[contains(text(),'Bob Perkins')]]") do
click_link_or_button("Change Role")
end
好運。
的可能的複製[如何獲得水豚父節點?](http://stackoverflow.com/questions/4861863/how-to-get-parent-node-in-capybara) – gtd