在Ruby / Capybara中,我尝试在单个查找查询中搜索多个(两个)定位器(css),并发现它会自动搜索它们并在页面上显示的定位器上执行操作。
EX-
find("css1","css2").set "ABC"
我观察到,在运行脚本时,它会在运行时搜索两个定位器,并对页面上显示的那个执行操作。
但是,当我使用xpath尝试相同的逻辑时,它不起作用并抛出元素未找到错误或无效选择器(页面上存在一个xpath)。
EX-
find(:xpath,"xpath1","xpath2").set "ABC"
任何人都可以帮助我们在ruby capybara中为xpath做些什么。
答案 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")