В Selenium, почему я получаю другой результат, когда я использую ByChained с двумя ByXPath и когда я использую только локатор ByXPath? - PullRequest
0 голосов
/ 28 марта 2019

Я не знаю, почему я получаю определенный элемент при использовании By.Chained.

У меня есть следующий HTML:

enter image description here

Когда я использую локатор

By.XPath("//*[text()='End date']/..//input[@type='text']")

Я получаю второе поле ввода, как и ожидалось: enter image description here

Но, когда я использую локатор

By.Chained([By.XPath: //*[text()='End date']/..,By.XPath: //input[@type='text']])

Я получаю первое поле ввода:

enter image description here

Почему это происходит?

1 Ответ

1 голос
/ 29 марта 2019

Ваше второе выражение (как и все, начинающиеся с /) - это абсолютный путь местоположения .Если это By.Chained применяет каждый результат из первого выражения в качестве контекста для второго, вам понадобится относительное выражение, например:

.//input[@type='text']

или более понятное:

descendant::input[@type='text']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...