Простой способ найти html-элемент, отрендеренный React

Для быстрого поиска элементов с помощью Selenium, я думаю, это должен быть простой способ установить некоторые атрибуты для html-элементов, например: преобразовать React Component Key в атрибут данных (если это возможно).

Конечно, я могу записать атрибуты id или data в свой диапазон, div и все, что есть в моих компонентах, но я не могу этого сделать с компонентами сторонних библиотек - эти компоненты могут не иметь таких свойств, как «id», и я нужно будет обернуть эти компоненты, а затем найти их по тегу или классу ...

Или, может быть, это плагин для веб-пакета для установки атрибутов данных для элементов с именами компонентов.

Однако как вы находите элементы в рендере приложения React?

Думаю, не стоит искать элементы по классам или тегам.

ключевое преобразование, подобное этому:

    <MyComponent key = "SuperComponent" />
    ...
    <div data-attr = "SuperComponent">...</div>

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

    <MySuperComponent />
    ...
    <div data-attr = "MySuperComponent">...</div>

Если data-attr = "SuperComponent" уникален для этого элемента на странице, он ничем не хуже идентификатора.

JeffC 16.01.2019 20:36

@JeffC, конечно, уникальный элемент должен иметь идентификатор вместо некоторого data-attr, но вопрос не в этом

frontEndNoob 16.01.2019 22:39

Нет, вам не обязательно иметь идентификатор, чтобы однозначно найти элемент на странице. Мой вопрос заключался в том, было ли атрибут / значение data-attr = "SuperComponent" уникальным на странице. Если это так, вы можете использовать это вместо того, чтобы указывать идентификаторы на всем подряд. Например, запустите $$("div[data-attr='SuperComponent']") в консоли разработчика и посмотрите, возвращает ли он только 1 элемент. Если да, то у вас есть уникальный локатор.

JeffC 16.01.2019 22:42
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
3
576
1

Ответы 1

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

Locator Strategies

Как найти элементы в рендере приложения React?

AUT (Тестируемое приложение), основанный на ReactJS, грубо говоря, элемент будет иметь динамические атрибуты. Стратегии поиска также может быть динамическим. Вы можете найти пример использования Стратегии динамического локатора в обсуждении Как найти кнопку с dynamicID

Наконец, пока Автоматизация тестирования, быстро движущийся экземпляр WebDriver будет необходимо синхронизировать с отстающим браузером. Вы можете найти соответствующее обсуждение в Есть ли у нас какая-то общая функция, чтобы проверить, полностью ли загружена страница в Selenium?

хорошо, я могу использовать id для каждого проверенного элемента, но как установить id (обработать запись, это не решение, нам нужно все автоматизировать :))

frontEndNoob 16.01.2019 22:34

на самом деле, я не верю, что в мире реакции не простой способ преобразовать имя компонента или ключ компонента в идентификатор элемента

frontEndNoob 16.01.2019 22:35

Другие вопросы по теме