Власні Матчери
WebdriverIO використовує бібліотеку тверджень expect
у стилі Jest, яка має спеціальні функції та власні матчери, специфічні для запуску веб- та мобільних тестів. Хоча бібліотека матчерів велика, вона точно не підходить для всіх можливих ситуацій. Тому можна розширити існуючі матчери власними, визначеними вами.
Хоча наразі немає різниці в тому, як визначаються матчери, специфічні для об'єкта browser
або екземпляра element, це може змінитися в майбутньому. Слідкуйте за webdriverio/expect-webdriverio#1408
для отримання додаткової інформації про цей розвиток.
Власні Матчери для Браузера
Щоб зареєструвати власний матчер для браузера, викличте extend
на об'єкті expect
безпосередньо у вашому spec-файлі або як частину, наприклад, хука before
у вашому wdio.conf.js
:
loading...
Як показано в прикладі, функція матчера приймає очікуваний об'єкт, наприклад, браузер або елемент, як перший параметр і очікуване значення як другий. Потім ви можете використовувати матчер таким чином:
loading...
Власні Матчери для Елементів
Подібно до власних матчерів для браузера, матчери елементів не відрізняються. Ось приклад того, як створити власний матчер для перевірки aria-label елемента:
loading...
Це дозволяє вам викликати твердження таким чином:
loading...
Підтримка TypeScript
Якщо ви використовуєте TypeScript, потрібен ще один крок для забезпечення типової безпеки ваших власних матчерів. Розширивши інтерфейс Matcher
вашими власними матчерами, всі проблеми з типами зникнуть:
loading...
Якщо ви створили власний асиметричний матчер, ви можете таким чином розширити типи expect
:
declare global {
namespace ExpectWebdriverIO {
interface AsymmetricMatchers {
myCustomMatcher(value: string): ExpectWebdriverIO.PartialMatcher;
}
}
}