如何在 ruby 水豚中使用单个查找项搜索多个定位器?

How to search multiple locators using a single find in ruby capybara?

在 Ruby/Capybara 中,我尝试在单个查找查询中搜索多个(两个)定位器(css),发现它会自动搜索这两个定位器并在定位器上执行操作出现在页面上。 前任- find("css1","css2").set "ABC"

我观察到,在 运行 运行脚本时,它会在 运行 时搜索两个定位器,并将对页面上存在的定位器执行操作。

但是,当我使用 xpath 尝试相同的逻辑时,它不起作用并抛出元素未找到错误或无效选择器(页面上存在一个 xpath)。 前任- find(:xpath,"xpath1","xpath2").set "ABC"

任何人都可以帮助我们如何在 ruby 水豚中为 xpath 做到这一点。

您显示的 find("css1","css2").set "ABC" 示例实际上不会对传递的 "css2" 参数执行任何操作,并且在当前版本的 Capybara 中,实际上会发出有关未使用参数的警告。什么会起作用

find("css1, css2").set("ABC") 

因为它使用的是分组逗号,它将找到匹配 css1 或 css2 的项目。在 XPath 中,您可以使用联合运算符 | 来做到这一点。这将 return 个匹配 xpath1 或 xpath2

的元素
find(:xpath, "xpath1 | xpath2").set("ABC")