Как обращаться с идентификатором webelement - не идентификатором атрибута (!) В javascript из селена- python? - PullRequest
0 голосов
/ 22 апреля 2020

Мне нужно обращаться с webelements, однозначно идентифицируя их. Идентификатор атрибута имеет известные ограничения: он может отсутствовать и быть не уникальным. Существует возможность использовать метод оценки, и мне интересно, можно ли идентифицировать элементы по их идентификатору, а не по идентификатору атрибута?

Пожалуйста, рассмотрите следующий код: Я ищу элемент по его идентификатору атрибута, а затем печатаю его id - они абсолютно разные

> Blockquote
>>> elem=driver.find_element(‘id’, ‘userInfoWhoRadioGroup_errorMessage’)
>>> elem.id
‘0ce5ef48-df80-487f-ada2-fc999dedb614’
>>> e.get_attribute(‘id’)
‘userInfoWhoRadioGroup_errorMessage’
>>>
> Blockquote
The beauty of the element's id is that every element has it and that it's unique.

Еще несколько деталей: элементы, с которыми мне нужно работать, уже найдены с помощью веб-драйвера, у меня есть их и их идентификаторы. Теперь я хотел бы запустить javascript на них (без обновления страницы, которая изменила бы идентификаторы). И я ищу способ однозначно идентифицировать их по этим идентификаторам

1 Ответ

1 голос
/ 22 апреля 2020

HTML атрибут id и elem.id полностью состоят из двух разных вещей. Идентификатор HTML указан в HTML, где elem.id - это id, присвоенный элементу селеном. Это всегда будет уникально и также будет меняться при обновлении / перезагрузке страницы.

Я бы не рекомендовал бы использовать elem.id для идентификации.

Вы можете взаимодействовать с элементом, используя ниже

driver.execute_script("arguments[0].textContent", elem)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...