Селекторы
Протокол WebDriver предоставляет несколько стратегий селекторов для запроса элементов. WebdriverIO упрощает их, чтобы выбор элементов оставался простым. Обратите внимание, что хотя команды для запроса элементов называются $
и $$
, они не имеют ничего общего с jQuery или движком селекторов Sizzle.
Хотя доступно так много различных селекторов, только некоторые из них обеспечивают надежный способ найти правильный элемент. Например, для следующей кнопки:
<button
id="main"
class="btn btn-large"
name="submission"
role="button"
data-testid="submit"
>
Submit
</button>
Мы рекомендуем и не рекомендуем следующие селекторы:
Селектор | Рекомендуется | Примечания |
---|---|---|
$('button') | 🚨 Никогда | Худший - слишком общий, нет контекста. |
$('.btn.btn-large') | 🚨 Никогда | Плохо. Связан со стилями. Очень подвержен изменениям. |
$('#main') | ⚠️ Редко | Лучше. Но все еще связан со стилями или обработчиками событий JS. |
$(() => document.queryElement('button')) | ⚠️ Редко | Эффективный запрос, сложно писать. |
$('button[name="submission"]') | ⚠️ Редко | Связан с атрибутом name , который имеет HTML-семантику. |
$('button[data-testid="submit"]') | ✅ Хорошо | Требует дополнительного атрибута, не связанного с доступностью. |
$('aria/Submit') или $('button=Submit') | ✅ Всегда | Лучший вариант. Отражает то, как пользователь взаимодействует со страницей. Рекомендуется использовать файлы переводов вашего фронтенда, чтобы ваши тесты никогда не падали при обновлении переводов |
CSS-селектор запроса
Если не указано иное, WebdriverIO будет запрашивать элеме нты, используя шаблон CSS-селектора, например:
selectors/example.js
loading...