Перейти до основного вмісту

Опції Методів

Опції методів - це опції, які можна встановити для кожного методу. Якщо опція має такий самий ключ, як опція, яка була встановлена під час створення екземпляра плагіна, ця опція методу перевизначить значення опції плагіна.

ПРИМІТКА
  • Всі опції з Опцій Збереження можуть бути використані для методів Порівняння
  • Всі опції порівняння можуть бути використані як під час створення екземпляру сервісу, так і для кожного окремого методу перевірки. Якщо опція методу має той самий ключ, що й опція, яка була встановлена під час створення екземпляру сервісу, то опція порівняння методу перевизначить значення опції порівняння сервісу.
  • Всі опції можуть бути використані для наступних контекстів додатків, якщо не зазначено інше:
    • Web
    • Гібридний додаток
    • Нативний додаток
  • Наведені нижче приклади використовують методи save*, але також можуть бути застосовані для методів check*

Опції Збереження

disableBlinkingCursor

  • Тип: boolean
  • Обов'язковий: Ні
  • За замовчуванням: false
  • Використовується з: Усіма методами
  • Підтримувані контексти додатків: Web, Гібридний додаток (Webview)

Увімкнути/вимкнути "блимання" курсору у всіх input, textarea, [contenteditable] в додатку. Якщо встановлено true, курсор буде встановлено як transparent перед зробленням знімку екрану і відновлено після завершення.

await browser.saveScreen(
'sample-tag',
{
disableBlinkingCursor: true
}
)

disableCSSAnimation

  • Тип: boolean
  • Обов'язковий: Ні
  • За замовчуванням: false
  • Використовується з: Усіма методами
  • Підтримувані контексти додатків: Web, Гібридний додаток (Webview)

Увімкнути/вимкнути всі CSS-анімації в додатку. Якщо встановлено true, всі анімації будуть вимкнені перед зробленням знімку екрану і відновлені після завершення

await browser.saveScreen(
'sample-tag',
{
disableCSSAnimation: true
}
)

enableLegacyScreenshotMethod

  • Тип: boolean
  • Обов'язковий: Ні
  • За замовчуванням: false
  • Використовується з: Усіма методами
  • Підтримувані контексти додатків: Web, Гібридний додаток (Webview)

Використовуйте цю опцію, щоб повернутися до "старішого" методу знімків екрану, заснованого на протоколі W3C-WebDriver. Це може бути корисно, якщо ваші тести залежать від існуючих базових зображень або якщо ви працюєте в середовищах, які не повністю підтримують новіші знімки на основі BiDi. Зверніть увагу, що увімкнення цієї опції може привести до знімків з дещо іншою роздільною здатністю або якістю.

await browser.saveScreen(
'sample-tag',
{
enableLegacyScreenshotMethod: true
}
)

enableLayoutTesting

  • Тип: boolean
  • Обов'язковий: Ні
  • За замовчуванням: false
  • Використовується з: Усіма методами
  • Підтримувані контексти додатків: Web, Гібридний додаток (Webview)

Це приховає весь текст на сторінці, щоб для порівняння використовувався лише макет. Приховування буде здійснено додаванням стилю 'color': 'transparent !important' до кожного елементу.

Для виводу дивіться Вихідні дані тесту.

інфо

Використовуючи цей прапорець, кожен елемент, що містить текст (тобто не тільки p, h1, h2, h3, h4, h5, h6, span, a, li, але також div|button|..), отримає цю властивість. Немає опції для налаштування цього.

await browser.saveScreen(
'sample-tag',
{
enableLayoutTesting: true
}
)

hideScrollBars

  • Тип: boolean
  • Обов'язковий: Ні
  • За замовчуванням: true
  • Використовується з: Усіма методами
  • Підтримувані контексти додатків: Web, Гібридний додаток (Webview)

Приховати смуги прокрутки в додатку. Якщо встановлено значення true, всі смуги прокрутки будуть вимкнені перед зробленням знімку екрану. За замовчуванням встановлено true, щоб запобігти додатковим проблемам.

await browser.saveScreen(
'sample-tag',
{
hideScrollBars: false
}
)

hideElements

  • Тип: array
  • Обов'язковий: Ні
  • Використовується з: Усіма методами
  • Підтримувані контексти додатків: Web, Гібридний додаток (Webview)

Цей метод може приховати один або декілька елементів, додаючи властивість visibility: hidden до них, шляхом надання масиву елементів.

await browser.saveScreen(
'sample-tag',
{
hideElements: [
await $('#element-1'),
await $('#element-2'),
]
}
)

removeElements

  • Тип: array
  • Обов'язковий: Ні
  • Використовується з: Усіма методами
  • Підтримувані контексти додатків: Web, Гібридний додаток (Webview)

Цей метод може видалити один або декілька елементів, додаючи властивість display: none до них, шляхом надання масиву елементів.

await browser.saveScreen(
'sample-tag',
{
removeElements: [
await $('#element-1'),
await $('#element-2'),
]
}
)

resizeDimensions

  • Тип: object
  • Обов'язковий: Ні
  • За замовчуванням: { top: 0, right: 0, bottom: 0, left: 0}
  • Використовується з: Тільки для saveElement або checkElement
  • Підтримувані контексти додатків: Web, Гібридний додаток (Webview), Нативний додаток

Об'єкт, який повинен містити кількість пікселів top, right, bottom та left, які повинні зробити вирізаний елемент більшим.

await browser.saveElement(
'sample-tag',
{
resizeDimensions: {
top: 50,
left: 100,
right: 10,
bottom: 90,
},
}
)

userBasedFullPageScreenshot

Якщо встановлено true, ця опція включає стратегію прокрутки та зшивання для захоплення повних знімків екрану. Замість використання нативних можливостей браузера для знімків екрану, вона вручну прокручує сторінку і зшиває кілька знімків разом. Цей метод особливо корисний для сторінок з лінивим завантаженням контенту або складними макетами, які вимагають прокрутки для повного відображення.

await browser.saveScreen(
'sample-tag',
{
userBasedFullPageScreenshot: true
}
)

fullPageScrollTimeout

  • Тип: number
  • Обов'язковий: Ні
  • За замовчуванням: 1500
  • Використовується з: Тільки для saveFullPageScreen або saveTabbablePage
  • Підтримувані контексти додатків: Web, Гібридний додаток (Webview)

Час очікування в мілісекундах після прокрутки. Це може допомогти визначити сторінки з лінивим завантаженням.

ПРИМІТКА: Це працює тільки коли userBasedFullPageScreenshot встановлено в true

await browser.saveFullPageScreen(
'sample-tag',
{
fullPageScrollTimeout: 3 * 1000
}
)

hideAfterFirstScroll

  • Тип: array
  • Обов'язковий: Ні
  • Використовується з: Тільки для saveFullPageScreen або saveTabbablePage
  • Підтримувані контексти додатків: Web, Гібридний додаток (Webview)

Цей метод приховає один або кілька елементів, додаючи властивість visibility: hidden до них, надавши масив елементів. Це буде корисно, коли сторінка, наприклад, містить липкі елементи, які прокручуються разом зі сторінкою, якщо сторінка прокручується, але даватимуть дратівливий ефект при створенні повного знімку сторінки

ПРИМІТКА: Це працює тільки коли userBasedFullPageScreenshot встановлено в true

await browser.saveFullPageScreen(
'sample-tag',
{
hideAfterFirstScroll: [
await $('#element-1'),
await $('#element-2'),
]
}
)

waitForFontsLoaded

  • Тип: boolean
  • Обов'язковий: Ні
  • За замовчуванням: true
  • Використовується з: Усіма методами
  • Підтримувані контексти додатків: Web, Гібридний додаток (Webview)

Шрифти, включаючи сторонні шрифти, можуть завантажуватися синхронно або асинхронно. Асинхронне завантаження означає, що шрифти можуть завантажитися після того, як WebdriverIO визначить, що сторінка повністю завантажена. Щоб запобігти проблемам рендерингу шрифтів, цей модуль за замовчуванням буде чекати, поки всі шрифти будуть завантажені перед зробленням знімку екрану.

await browser.saveScreen(
'sample-tag',
{
waitForFontsLoaded: true
}
)

Опції порівняння (перевірки)

Опції порівняння — це опції, які впливають на спосіб виконання порівняння за допомогою ResembleJS.

ignoreAlpha

  • Тип: boolean
  • За замовчуванням: false
  • Обов'язковий: Ні
  • Використовується з: Усіма Методами перевірки
  • Підтримувані контексти додатків: Усі

Порівнювати зображення та ігнорувати альфа-канал.

await browser.checkScreen(
'sample-tag',
{
ignoreAlpha: true
}
)

blockOutSideBar

  • Тип: boolean
  • За замовчуванням: true
  • Обов'язковий: Ні
  • Використовується з: Може використовуватися тільки з checkScreen(). Це тільки для iPad
  • Підтримувані контексти додатків: Усі

Автоматично блокувати бічну панель для iPad в альбомному режимі під час порівнянь. Це запобігає помилкам на нативному компоненті вкладки/приватного режиму/закладок.

await browser.checkScreen(
'sample-tag',
{
blockOutSideBar: true
}
)

blockOutStatusBar

  • Тип: boolean
  • За замовчуванням: true
  • Обов'язковий: Ні
  • Використовується з: Це тільки для мобільних пристроїв
  • Підтримувані контексти додатків: Гібридні (нативна частина) та нативні додатки

Автоматично блокувати рядок стану та адресний рядок під час порівнянь. Це запобігає помилкам щодо часу, Wi-Fi або стану батареї.

await browser.checkScreen(
'sample-tag',
{
blockOutStatusBar: true
}
)

blockOutToolBar

  • Тип: boolean
  • За замовчуванням: true
  • Обов'язковий: Ні
  • Використовується з: Це тільки для мобільних пристроїв
  • Підтримувані контексти додатків: Гібридні (нативна частина) та нативні додатки

Автоматично блокувати панель інструментів.

await browser.checkScreen(
'sample-tag',
{
blockOutToolBar: true
}
)

ignoreAntialiasing

  • Тип: boolean
  • За замовчуванням: false
  • Обов'язковий: Ні
  • Використовується з: Усіма Методами перевірки
  • Підтримувані контексти додатків: Усі

Порівнювати зображення та ігнорувати згладжування.

await browser.checkScreen(
'sample-tag',
{
ignoreAntialiasing: true
}
)

ignoreColors

  • Тип: boolean
  • За замовчуванням: false
  • Обов'язковий: Ні
  • Використовується з: Усіма Методами перевірки
  • Підтримувані контексти додатків: Усі

Навіть якщо зображення кольорові, порівняння порівнюватиме 2 чорно-білі зображення

await browser.checkScreen(
'sample-tag',
{
ignoreColors: true
}
)

ignoreLess

  • Тип: boolean
  • За замовчуванням: false
  • Обов'язковий: Ні
  • Використовується з: Усіма Методами перевірки
  • Підтримувані контексти додатків: Усі

Порівнювати зображення та порівнювати з red = 16, green = 16, blue = 16, alpha = 16, minBrightness=16, maxBrightness=240

await browser.checkScreen(
'sample-tag',
{
ignoreLess: true
}
)

ignoreNothing

  • Тип: boolean
  • За замовчуванням: false
  • Обов'язковий: Ні
  • Використовується з: Усіма Методами перевірки
  • Підтримувані контексти додатків: Усі

Порівнювати зображення та порівнювати з red = 0, green = 0, blue = 0, alpha = 0, minBrightness=0, maxBrightness=255

await browser.checkScreen(
'sample-tag',
{
ignoreNothing: true
}
)

rawMisMatchPercentage

  • Тип: boolean
  • За замовчуванням: false
  • Обов'язковий: Ні
  • Використовується з: Усіма Методами перевірки
  • Підтримувані контексти додатків: Усі

Якщо true, відсоток повернення буде як 0.12345678, за замовчуванням 0.12

await browser.checkScreen(
'sample-tag',
{
rawMisMatchPercentage: true
}
)

returnAllCompareData

  • Тип: boolean
  • За замовчуванням: false
  • Обов'язковий: Ні
  • Використовується з: Усіма Методами перевірки
  • Підтримувані контексти додатків: Усі

Це поверне всі дані порівняння, а не лише відсоток невідповідності, див. також Консольний вивід

await browser.checkScreen(
'sample-tag',
{
returnAllCompareData: true
}
)

saveAboveTolerance

  • Тип: number
  • За замовчуванням: 0
  • Обов'язковий: Ні
  • Використовується з: Усіма Методами перевірки
  • Підтримувані контексти додатків: Усі

Допустиме значення misMatchPercentage, яке запобігає збереженню зображень з відмінностями

await browser.checkScreen(
'sample-tag',
{
saveAboveTolerance: 0.25
}
)

largeImageThreshold

  • Тип: number
  • За замовчуванням: 0
  • Обов'язковий: Ні
  • Використовується з: Усіма Методами перевірки
  • Підтримувані контексти додатків: Усі

Порівняння великих зображень може призвести до проблем з продуктивністю. При зазначенні числа для кількості пікселів (вище 0), алгоритм порівняння пропускає пікселі, коли ширина або висота зображення більша ніж largeImageThreshold пікселів.

await browser.checkScreen(
'sample-tag',
{
largeImageThreshold: 1500
}
)

scaleImagesToSameSize

  • Тип: boolean
  • За замовчуванням: false
  • Обов'язковий: Ні
  • Використовується з: Усіма Методами перевірки
  • Підтримувані контексти додатків: Усі

Масштабує 2 зображення до однакового розміру перед виконанням порівняння. Настійно рекомендується увімкнути ignoreAntialiasing та ignoreAlpha

await browser.checkScreen(
'sample-tag',
{
scaleImagesToSameSize: true
}
)

ignore

  • Тип: array
  • Обов'язковий: Ні
  • Використовується з: Тільки з методом checkScreen, НЕ з методом checkElement
  • Підтримувані контексти додатків: Нативний додаток

Цей метод автоматично блокує елементи або область на екрані на основі масиву елементів або об'єкта x|y|width|height.

await browser.checkScreen(
'sample-tag',
{
ignore: [
$('~element-1'),
await $('~element-2'),
{
x: 150,
y: 250,
width: 100,
height: 100,
}
]
}
)

Опції папок

Базова папка та папки знімків (actual, diff) - це опції, які можна встановити під час створення екземпляру плагіна або методу. Щоб встановити опції папок для конкретного методу, передайте опції папок до об'єкта опцій методу. Це можна використовувати для:

  • Web
  • Гібридний додаток
  • Нативний додаток
import path from 'node:path'

const methodOptions = {
actualFolder: path.join(process.cwd(), 'customActual'),
baselineFolder: path.join(process.cwd(), 'customBaseline'),
diffFolder: path.join(process.cwd(), 'customDiff'),
}

// Ви можете використовувати це для всіх методів
await expect(
await browser.checkFullPageScreen("checkFullPage", methodOptions)
).toEqual(0)

actualFolder

  • Тип: string
  • Обов'язковий: Ні
  • Підтримувані контексти додатків: Усі

Папка для знімків, які були зроблені в тесті.

baselineFolder

  • Тип: string
  • Обов'язковий: Ні
  • Підтримувані контексти додатків: Усі

Папка для базового зображення, яке використовується для порівняння.

diffFolder

  • Тип: string
  • Обов'язковий: Ні
  • Підтримувані контексти додатків: Усі

Папка для зображення різниці, створеного ResembleJS.

Welcome! How can I help?

WebdriverIO AI Copilot