2016-12-26 4 views
0

В Ruby/Capybara я попытался найти несколько (двух) локаторов (css) в одном запросе поиска и обнаружил, что он автоматически выполняет поиск обоих из них и выполняет действие на локаторе, которое присутствует на странице. Экс- find("css1","css2").set "ABC"Как искать несколько локаторов, используя одну находку в ruby ​​capybara?

Я заметил, что во время выполнения скрипта во время выполнения его поиска как локаторы и будет выполнять действие на той, которая присутствует на странице.

Однако, когда я пробовал одну и ту же логику с помощью xpath, она не работает и не бросает элемент, который не найден ошибкой или недействительным селектором (один xpath присутствует на странице). ex- find(:xpath,"xpath1","xpath2").set "ABC"

Может ли кто-нибудь помочь, как мы можем это сделать для xpath также в ruby ​​capybara.

+0

Как об использовании оператора XPath накидного: 'найти (: XPATH, "xpath1 | xpath2"). набор "ABC"' – har07

ответ

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") 

 Смежные вопросы

  • Нет связанных вопросов^_^