C# Selenium findElements от XPath возвращает ноль - PullRequest
0 голосов
/ 06 января 2020
IList<IWebElement> firstname = driverOne.FindElements(By.XPath("//*[@id="+ ((char)34) + "4cd85da6-f2d1-4361-9864-e187dc763f9b" + ((char)34) + "]"));

Я пытался это go получить элемент из HTML ниже, но он возвращает ноль, потому что каждый раз, когда я перезагружаю страницу, XPath изменяется, потому что элемент создается случайным образом из Angular, я думаю.

<input id="0bad9cfd-028d-404c-a498-17a3f5f1ae81" type="text" data-test="first-name-input" placeholder="" class="ng-untouched ng-pristine ng-invalid"><!----><!---->

Я также пытался сделать это с Id и CSS -Selector, но после перезагрузки все изменилось, поэтому я не знаю, что делать ...

Так как я могу получить Элемент?

Ответы [ 2 ]

0 голосов
/ 06 января 2020

При назначении идентификатора тегу html строго так:

<h1 id="test"> </h1>

Идентификатор не изменится после Angular процесса рендеринга. Вы можете добавлять идентификаторы к каждому элементу, к которому вам нужен доступ.

0 голосов
/ 06 января 2020

попробуйте использовать data-test, может быть?

firstname =driver.FindElement(By.XPath("//*[@data-test='first-name-input']"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...