Опции методов
Опции методов — это параметры, которые можно установить для каждого метода. Если опция имеет такой же ключ, как опция, установленная при инициализации плагина, то опция метода переопределит значение опции плагина.
- Все опции из Save Options могут использоваться для методов Compare
- Все опции сравнения могут использоваться как при инициализации сервиса, так и для каждого отдельного метода проверки. Если опция метода имеет такой же ключ, как опция, установленная при инициализации сервиса, то опция сравнения метода переопределит значение опции сравнения сервиса.
- Все опции могут использоваться для следующих контекстов пр иложений, если не указано иное:
- Web
- Hybrid App
- Native App
- Приведенные ниже примеры используют методы
save*
, но также могут использоваться с методамиcheck*
Save Options
disableBlinkingCursor
- Тип:
boolean
- Обязательно: Нет
- По умолчанию:
false
- Используется с: Все методы
- Поддерживаемые контексты приложений: Web, Hybrid App (Webview)
Включает/отключает "мигание" курсора во всех input
, textarea
, [contenteditable]
в приложении. Если установлено значение true
, курсор будет установлен как transparent
перед снятием скриншота
и сброшен по завершении.
await browser.saveScreen(
'sample-tag',
{
disableBlinkingCursor: true
}
)
disableCSSAnimation
- Тип:
boolean
- Обязательно: Нет
- По умолчанию:
false
- Используется с: Все методы
- Поддерживаемые контексты приложений: Web, Hybrid App (Webview)
Включает/отключает все CSS-анимации в приложении. Если установлено значение true
, все анимации будут отключены перед снятием скриншота
и сброшены по завершении
await browser.saveScreen(
'sample-tag',
{
disableCSSAnimation: true
}
)
enableLegacyScreenshotMethod
- Тип:
boolean
- Обязательно: Нет
- По умолчанию:
false
- Используется с: Все методы
- Поддерживаемые контексты приложений: Web, Hybrid App (Webview)
Используйте эту опцию для возврата к "старому" методу снятия скриншотов на основе протокола W3C-WebDriver. Это может быть полезно, если ваши тесты полагаются на существующие базовые изображения или если вы работаете в средах, которые не полностью поддерживают новые скриншоты на основе BiDi. Обратите внимание, что включение этой опции может привести к созданию скриншотов с немного другим разрешением или качеством.
await browser.saveScreen(
'sample-tag',
{
enableLegacyScreenshotMethod: true
}
)
enableLayoutTesting
- Тип:
boolean
- Обязательно: Нет
- По умолчанию:
false
- Используется с: Все методы
- Поддерживаемые контексты приложений: Web, Hybrid App (Webview)
Это скроет весь текст на странице, поэтому для сравнения будет использоваться только макет. Скрытие будет выполнено путем добавления стиля 'color': 'transparent !important'
к каждому элементу.
Для вывода см. Test Output.
При использовании этого флага каждый элемент, содержащий текст (не только p, h1, h2, h3, h4, h5, h6, span, a, li
, но и div|button|..
), получит это свойство. Нет возможности настроить это.
await browser.saveScreen(
'sample-tag',
{
enableLayoutTesting: true
}
)
hideScrollBars
- Тип:
boolean
- Обязательно: Нет
- По умолчанию:
true
- Испол ьзуется с: Все методы
- Поддерживаемые контексты приложений: Web, Hybrid App (Webview)
Скрыть полосы прокрутки в приложении. Если установлено значение true, все полосы прокрутки будут отключены перед снятием скриншота. По умолчанию установлено значение true
для предотвращения дополнительных проблем.
await browser.saveScreen(
'sample-tag',
{
hideScrollBars: false
}
)
hideElements
- Тип:
array
- Обязательно: Нет
- Используется с: Все методы
- Поддерживаемые контексты приложений: Web, Hybrid App (Webview)
Этот метод может скрыть 1 или несколько элементов, добавив к ним свойство visibility: hidden
, предоставив массив элементов.
await browser.saveScreen(
'sample-tag',
{
hideElements: [
await $('#element-1'),
await $('#element-2'),
]
}
)
removeElements
- Тип:
array
- Обязательно: Нет
- Используется с: Все методы
- Поддерживаемые контексты приложений: Web, Hybrid App (Webview)
Этот метод может удалить 1 или несколько элементов, добавив к ним свойство 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, Hybrid App (Webview), Native App
Объект, который должен содержать количество пикселей top
, right
, bottom
и left
, на которые нужно увеличить вырезку элемента.
await browser.saveElement(
'sample-tag',
{
resizeDimensions: {
top: 50,
left: 100,
right: 10,
bottom: 90,
},
}
)
userBasedFullPageScreenshot
- Тип:
boolean
- Обязательно: Нет
- По умолчанию:
false
- Используется с: Только для
saveFullPageScreen
,saveTabbablePage
,checkFullPageScreen
илиcheckTabbablePage
- Поддерживаемые контексты приложений: Web, Hybrid App (Webview)
При установке значения true
эта опция включает стратегию прокрутки и сшивания для создания полноэкранных снимков.
Вместо использования встроенных возможностей браузера для создания скриншотов, он вручную прокручивает страницу и сшивает несколько скриншотов вместе.
Этот метод особенно полезен для страниц с ленивой загрузкой контента или сложными макетами, требующими прокрутки для полного отображения.
await browser.saveScreen(
'sample-tag',
{
userBasedFullPageScreenshot: true
}
)
fullPageScrollTimeout
- Тип:
number
- Обязательно: Нет
- По умолчанию:
1500
- Используется с: Только для
saveFullPageScreen
илиsaveTabbablePage
- Поддерживаемые контексты приложений: Web, Hybrid App (Webview)
Таймаут в миллисекундах для ожидания после прокрутки. Это может помочь с идентификацией страниц с ленивой загрузкой.
ПРИМЕЧАНИЕ: Это работает только когда
userBasedFullPageScreenshot
установлен вtrue
await browser.saveFullPageScreen(
'sample-tag',
{
fullPageScrollTimeout: 3 * 1000
}
)
hideAfterFirstScroll
- Тип:
array
- Обязательно: Нет
- Используется с: Только для
saveFullPageScreen
илиsaveTabbablePage
- Поддерживаемые контексты приложений: Web, Hybrid App (Webview)
Этот метод скроет один или несколько элементов, добавив к ним свойство visibility: hidden
, предоставив массив элементов.
Это будет полезно, например, когда на странице есть прилипающие элементы, которые будут прокручиваться вместе со страницей при её прокрутке, но создадут раздражающий эффект при создании полноэкранного снимка
ПРИМЕЧАНИЕ: Это работает только когда
userBasedFullPageScreenshot
установлен вtrue
await browser.saveFullPageScreen(
'sample-tag',
{
hideAfterFirstScroll: [
await $('#element-1'),
await $('#element-2'),
]
}
)
waitForFontsLoaded
- Тип:
boolean
- Обязательно: Нет
- По умолчанию:
true
- Используется с: Все методы
- Поддерживаемые контексты приложений: Web, Hybrid App (Webview)
Шрифты, включая шрифты третьих сторон, могут загружаться синхронно или асинхронно. Асинхронная загрузка означает, что шрифты могут загружаться после того, как WebdriverIO определит, что страница полностью загружена. Чтобы предотвратить проблемы с рендерингом шрифтов, этот модуль по умолчанию будет ждать загрузки всех шрифтов перед снятием скриншота.
await browser.saveScreen(
'sample-tag',
{
waitForFontsLoaded: true
}
)
Compare (Check) Options
Оп ции сравнения — это опции, которые влияют на способ выполнения сравнения с помощью 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
- Обязательно: Нет
- Используется с: Это только для мобильных устройств
- Поддерживаемые контексты приложений: Hybrid (нативная часть) и Native Apps
Автоматически блокирует строку состояния и адресную строку во время сравнений. Это предотвращает сбои из-за времени, Wi-Fi или состояния батареи.
await browser.checkScreen(
'sample-tag',
{
blockOutStatusBar: true
}
)
blockOutToolBar
- Тип:
boolean
- По умолчанию:
true
- Обязательно: Нет
- Используется с: Это только для мобильных устройств
- Поддерживаемые контексты приложений: Hybrid (нативная часть) и Native Apps
Автоматически блокирует панель инструментов.
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
}
)