在水豚中使用 xpath 选择第一个元素

Picking the first element using xpath in capybara

我有下面这行代码

link = find(:xpath, "//div[@id='tree']//a[contains(.,'#{peril}')]")

以上步骤产生两个元素。第一个怎么选。

我得到一个不明确的匹配项,找到了 2 个与 xpath 匹配的元素。这是 HTML “ ShipCase_US_MortalityRatingGroup_Life 投资组合结果 地震 传染病

您需要将整个 XPath 括在括号中并在其后添加 [1]

(//div[@id='tree']//a[contains(.,'#{peril}')])[1]

find(".active", match: :first).click

此解决方案使用了 Capybara 的(非常重要的)等待功能