Для быстрого поиска элементов с помощью Selenium, я думаю, это должен быть простой способ установить некоторые атрибуты для html-элементов, например: преобразовать React Component Key в атрибут данных (если это возможно).
Конечно, я могу записать атрибуты id или data в свой диапазон, div и все, что есть в моих компонентах, но я не могу этого сделать с компонентами сторонних библиотек - эти компоненты могут не иметь таких свойств, как «id», и я нужно будет обернуть эти компоненты, а затем найти их по тегу или классу ...
Или, может быть, это плагин для веб-пакета для установки атрибутов данных для элементов с именами компонентов.
Однако как вы находите элементы в рендере приложения React?
Думаю, не стоит искать элементы по классам или тегам.
ключевое преобразование, подобное этому:
<MyComponent key = "SuperComponent" />
...
<div data-attr = "SuperComponent">...</div>
или автонастройка атрибутов имени компонента, подобных этому:
<MySuperComponent />
...
<div data-attr = "MySuperComponent">...</div>
@JeffC, конечно, уникальный элемент должен иметь идентификатор вместо некоторого data-attr, но вопрос не в этом
Нет, вам не обязательно иметь идентификатор, чтобы однозначно найти элемент на странице. Мой вопрос заключался в том, было ли атрибут / значение data-attr = "SuperComponent" уникальным на странице. Если это так, вы можете использовать это вместо того, чтобы указывать идентификаторы на всем подряд. Например, запустите $$("div[data-attr='SuperComponent']") в консоли разработчика и посмотрите, возвращает ли он только 1 элемент. Если да, то у вас есть уникальный локатор.






С точки зрения «Автоматизация испытаний через Селен" вряд ли имеет значение, состоит ли HTML из я бы или атрибуты данных. При работе с Селен тесты пишутся с помощью любого действующего <tag> и связанного с ним атрибуты. Однако предпочтительный список Стратегии поиска выглядит следующим образом:

AUT (Тестируемое приложение), основанный на ReactJS, грубо говоря, элемент будет иметь динамические атрибуты. Стратегии поиска также может быть динамическим. Вы можете найти пример использования Стратегии динамического локатора в обсуждении Как найти кнопку с dynamicID
Наконец, пока Автоматизация тестирования, быстро движущийся экземпляр WebDriver будет необходимо синхронизировать с отстающим браузером. Вы можете найти соответствующее обсуждение в Есть ли у нас какая-то общая функция, чтобы проверить, полностью ли загружена страница в Selenium?
хорошо, я могу использовать id для каждого проверенного элемента, но как установить id (обработать запись, это не решение, нам нужно все автоматизировать :))
на самом деле, я не верю, что в мире реакции не простой способ преобразовать имя компонента или ключ компонента в идентификатор элемента
Если data-attr = "SuperComponent" уникален для этого элемента на странице, он ничем не хуже идентификатора.