Expect
Під час написання тестів часто потрібно перевіряти, чи відповідають значення певним умовам. expect
надає вам доступ до ряду "матчерів", які дозволяють перевіряти різні речі на об'єктах browser
, element
або mock
.
Параметри за замовчуванням
Ці параметри за замовчуванням пов'язані з опціями waitforTimeout
та waitforInterval
, встановленими в конфігурації.
Встановлюйте наведені нижче параметри лише якщо ви хочете чекати певні проміжки часу для ваших тверджень.
{
wait: 2000, // мс для очікування успішного виконання очікування
interval: 100, // інтервал між спробами
}
Якщо ви хочете встановити різні таймаути та інтервали, встановіть ці параметри так:
// wdio.conf.js
import { setOptions } from 'expect-webdriverio'
export const config = {
// ...
before () {
setOptions({ wait: 5000 })
},
// ...
}
Параметри матчера
Кожен матчер може приймати кілька параметрів, які дозволяють модифікувати твердження:
Пара метри команди
Назва | Тип | Деталі |
---|---|---|
wait | number | час в мс для очікування успішного виконання очікування. За замовчуванням: 3000 |
interval | number | інтервал між спробами. За замовчуванням: 100 |
beforeAssertion | function | функція, яка буде викликана перед виконанням твердження |
afterAssertion | function | функція, яка буде викликана після виконання твердження і містить результати твердження |
message | string | повідомлення користувача, яке додається перед помилкою твердження |
Параметри рядка
Ці параметри можна застосувати додатково до параметрів команди, коли перевіряються рядки.
Назва | Тип | Деталі |
---|---|---|
ignoreCase | boolean | застосувати toLowerCase для фактичного та очікуваного значень |
trim | boolean | застосувати trim для фактичного значення |
replace | Replacer | Replacer[] | замінити частини фактичного значення, які відповідають рядку/RegExp. Замінник може бути рядком або функцією. |
containing | boolean | очікувати, що фактичне значення містить очікуване значення, інакше строга рівність. |
asString | boolean | може бути корисним для примусового перетворення значення властивості в рядок |
atStart | boolean | очікувати, що фактичне значення починається з очікуваного значення |
atEnd | boolean | очікувати, що фактичне значення закінчується очікуваним значенням |
atIndex | number | очікувати, що фактичне значення має очікуване значення за вказаним індексом |
Параметри числа
Ці параметри можна застосувати додатково до параметрів команди, коли перевіряються числа.
Назва | Тип | Деталі |
---|---|---|
eq | number | дорівнює |
lte | number | менше або дорівнює |
gte | number | більше або дорівнює |
Обробка HTML-сутностей
HTML-сутність - це фрагмент тексту ("рядок"), який починається з амперсанда (&
) і закінчується крапкою з комою (;
). Сутності часто використовуються для відображення зарезервованих символів (які інакше інтерпретуються як HTML-код) та невидимих символів (таких як нерозривні пробіли, наприклад,
).
Щоб знайти або взаємодіяти з таким елементом, використовуйте Unicode-еквівалент сутності. Наприклад:
<div data="Some Value">Some Text</div>
const myElem = await $('div[data="Some\u00a0Value"]')
await expect(myElem).toHaveAttribute('data', 'div[Some\u00a0Value')
await expect(myElem).toHaveText('Some\u00a0Text')
Ви можете знайти всі Unicode-посилання в HTML-специфікації.
Примітка: Unicode нечутливий до регістру, тому обидва варіанти \u00a0
та \u00A0
працюватимуть. Щоб знайти елемент в інспекторі браузера, видаліть u
з Unicode, наприклад: div[data="Some\00a0Value"]
Матчери для браузера
toHaveUrl
Перевіряє, чи знаходиться браузер на певній сторінці.
Використання
await browser.url('https://webdriver.io/')
await expect(browser).toHaveUrl('https://webdriver.io')
Використання
await browser.url('https://webdriver.io/')
await expect(browser).toHaveUrl(expect.stringContaining('webdriver'))
toHaveTitle
Перевіряє, чи має веб-сайт певний заголовок.
Використання
await browser.url('https://webdriver.io/')
await expect(browser).toHaveTitle('WebdriverIO · Next-gen browser and mobile automation test framework for Node.js')
await expect(browser).toHaveTitle(expect.stringContaining('WebdriverIO'))
toHaveClipboardText
Перевіряє, чи має браузер певний текст, збережений у буфері обміну.
Використання
import { Key } from 'webdriverio'
await browser.keys([Key.Ctrl, 'a'])
await browser.keys([Key.Ctrl, 'c'])
await expect(browser).toHaveClipboardText('some clipboard text')
await expect(browser).toHaveClipboardText(expect.stringContaining('clipboard text'))
Матчери для елементів
toBeDisplayed
Викликає isDisplayed
для вказаного елемента.
Використання
const elem = await $('#someElem')
await expect(elem).toBeDisplayed()
toExist
Викликає isExisting
для вказаного елемента.
Використання
const elem = await $('#someElem')
await expect(elem).toExist()
toBePresent
Те саме, що і toExist
.
Використання
const elem = await $('#someElem')
await expect(elem).toBePresent()
toBeExisting
Те саме, що і toExist
.