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

时间:2016-12-26 06:45:07

标签: ruby xpath capybara

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

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

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

任何人都可以帮助我们在ruby capybara中为xpath做些什么。

1 个答案:

答案 0 :(得分:0)

您展示的find("css1","css2").set "ABC"示例实际上并没有对" css2"做任何事情。传递的参数,在当前版本的Capybara中,实际上会发出关于未使用参数的警告。什么会工作

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

因为它使用的分组逗号会找到与css1或css2匹配的项目。在XPath中,您可以使用union运算符执行此操作它将返回与xpath1或xpath2匹配的元素

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