Лучшие практики
Это руководство поможет вам узнать наши лучшие практики, которые помогут писать производительные и надежные тесты.
Используйте устойчивые селекторы
Используя селекторы, устойчивые к изменениям в DOM, у вас будет меньше или вообще не будет падающих тестов, когда, например, класс будет удален из элемента.
Классы могут применяться к нескольким элементам, и их следует избегать, если это возможно, если вы специально не хотите получить все элементы с этим классом.
// 👎
await $('.button')
Все эти селекторы должны возвращать один элемент.
// 👍
await $('aria/Submit')
await $('[test-id="submit-button"]')
await $('#submit-button')
Примечание: Чтобы узнать о всех возможных селекторах, которые поддерживает WebdriverIO, посмотрите нашу страницу Selectors.
Ограничьте количество запросов элементов
Каждый раз, когда вы используете команду $
или $$
(это включает их цепочки), WebdriverIO пытается найти элемент в DOM. Эти запросы дорогостоящие, поэтому вы должны стараться ограничивать их как можно больше.
Запрашивает три элемента.
// 👎
await $('table').$('tr').$('td')
Запрашивает только один элемент.
// 👍
await $('table tr td')
Единственный случай, когда вы должны использовать цепочки - это когда вы хотите комбинировать различные стратегии селекторов. В примере мы используем Deep Selectors, что является стратегией проникновения в теневой DOM элемента.
// 👍
await $('custom-datepicker').$('#calendar').$('aria/Select')