Всем привет!
Покажу на примере проблему.
Есть ресурс: SIXT ride | Chauffeur Service, Airport Transfers & Taxis
Нам необходимо ввести значение в поле pickupAt
. Если вводим ручками - появляется предложение по локации, выбираем и идём дальше.
Необходимо это заавтоматизировать.
Загвоздка тут в том, что этот input находится в shadow-root. Protractor его не обрабатывает, никак, просто не видит (.deepCss бесполезно). Нашел решение кликать и вводить значение через javascriptExecutor
отдебажил в консоле:
document.getElementsByTagName("mdr-ibe")[0].shadowRoot.getElementById("pickup-input").value = "SFO";
В этом случае мы можем увидеть текст в поле, но сайт не открывает окно, где ты можешь выбрать твою локацию согласно тексту. То есть, задача - чтоб появилось выпадающее окно.
Что было сделано и что не сработало.
-
document.getElementsByTagName("mdr-ibe")[0].shadowRoot.getElementById("pickup-input").click()
- не сработало. - Просто вбить финальное значение локации и нажать продолжить - не работает. Просит выбрать локацию.
Я использую Protractor. Может быть кто-то подскажет, как определить элемент из javascriptExecutor
в Element и попробовать на нём вызвать код?