Как найти случайный идентификатор, сгенерированный модальным? - PullRequest
0 голосов
/ 11 февраля 2019

Я тестировал свой сайт, используя RF.Проблема в том, что каждый раз, когда модальный открывается, в текстовом поле, которое я хочу ввести свой текст, будет установлен другой идентификатор (локатор).Как вы получаете значение этого локатора?

Я должен был попробовать Получить атрибут элемента , но тогда он не может поддержать мою проблему, так как он все еще требует определенного локатора.

Спасибо, что поделились своими мыслями

Ответы [ 2 ]

0 голосов
/ 22 апреля 2019

Пожалуйста, попробуйте ChroPath, который поддерживает динамический идентификатор, а также вы можете сгенерировать относительный xpath для любого пользовательского атрибута.

ChroPath

Относительный xpath с id- enter image description here

Относительный xpath без id- enter image description here

0 голосов
/ 12 февраля 2019

В ROBOT Framework (RF) доступ к локатору можно получить несколькими способами.Пожалуйста, обратитесь и прочитайте эту ссылку: http://robotframework.org/Selenium2Library/Selenium2Library.html

Самым распространенным способом доступа к локатору является идентификатор, такой как:

Input Text  id:username # Element with id 'username'.
Input Text  id:password # Element with id 'password'. you can also use 'Input Password' keyword.

Однако, если элемент 'id' является настолько динамичнымкоторый постоянно меняется, тогда лучшая альтернатива - использовать ABSOLUTE XPATH expression или CSS-селекторы .Установите дополнение XPATH в своем веб-браузере.Для Firefox просто установите ChroPath.

Затем получите элемент ABSOLUTE Xpath в этом текстовом поле имени пользователя и пароля.Давайте предположим, что мы уже знаем абсолютное выражение xpath, поэтому в ROBOT вы можете написать так, как показано ниже.

${login_absolute_xpath}=  Set Variable   xpath=/html[1]//div[7]/form[1]/div[1]/input[1]
${password_absolute_xpath}=  Set Variable   xpath=/html[1]//div[7]/form[1]/div[2]/input[1]

Wait Until Page Contains Element   xpath=${login_absolute_xpath}
Input Text   xpath=${login_absolute_xpath}
Input Text   xpath=${password_absolute_xpath}
...

Это должно сработать.Пожалуйста, дайте мне знать, если это поможет.

...