Тестовый вывод
Этот демонстрационный сайт WebdriverIO использовался для примеров изображений.
enableLayoutTesting
Это можно установить как в Опциях сервиса, так и на уровне метода.
// wdio.conf.(js|ts)
export const config = {
// ...
// =====
// Setup
// =====
services: [
[
'visual',
{
enableLayoutTesting: true
}
]
]
// ...
}
Вывод изображения для Опций сервиса идентичен Методу, смотрите ниже.
Вывод изображения
- saveElement | checkElement
- saveScreen | checkScreen
- saveFullPageScreen | checkFullPageScreen
- saveTabbablePage | checkTabbablePage
await browser.saveElement(".features_vqN4", "example-element-tag", {enableLayoutTesting: true})
// Or
await browser.checkElement(".features_vqN4", "example-element-tag", {enableLayoutTesting: true})
await browser.saveScreen("example-page-tag")
await browser.saveFullPageScreen("full-page-tag")
// Or
await browser.checkFullPageScreen("full-page-tag", {enableLayoutTesting: true})
await browser.saveTabbablePage("tabbable-page-tag")
// Or
await browser.checkTabbablePage("tabbable-page-tag", {enableLayoutTesting: true})
save(Screen/Element/FullPageScreen)
Вывод в консоль
Методы save(Screen/Element/FullPageScreen)
предоставляют следующую информацию после выполнения:
const saveResult = await browser.saveFullPageScreen({ ... })
console.log(saveResults)
/**
* {
* // Соотношение пикселей устройства, на котором выполнялся запуск
* devicePixelRatio: 1,
* // Отформатированное имя файла, зависит от опции `formatImageName`
* fileName: "examplePage-chrome-latest-1366x768.png",
* // Путь, где можно найти фактический файл скриншота
* path: "/path/to/project/.tmp/actual/desktop_chrome",
* };
*/
Вывод изображения
- saveElement
- saveScreen
- saveFullPageScreen
await browser.saveElement(".hero__title-logo", "example-element-tag")
- Desktop
- Android
- iOS
await browser.saveScreen("example-page-tag")
- Desktop
- Android ChromeDriver
- Android nativeWebScreenshot
- iOS
Выполнение saveScreen
для iOS по умолчанию не включает скругленные углы устройства. Чтобы включить их, добавьте опцию addIOSBezelCorners:true
при инициализации сервиса, см. здесь
await browser.saveFullPageScreen("full-page-tag")
- Desktop
- Android
- iOS
check(Screen/Element/FullPageScreen)
Вывод в консоль
По умолчанию методы check(Screen/Element/FullPageScreen)
предоставляют только процент несоответствия, например 1.23
, но когда у плагина установлена опция returnAllCompareData: true
, предоставляется следующая информация после выполнения метода:
const checkResult = await browser.checkFullPageScreen({ ... })
console.log(checkResult)
/**
* {
* // Отформатированное имя файла, зависит от опции `formatImageName`
* fileName: "examplePage-chrome-headless-latest-1366x768.png",
* folders: {
* // Папка фактических изображений и имя файла
* actual: "/path/to/project/.tmp/actual/desktop_chrome/examplePage-chrome-headless-latest-1366x768.png",
* // Папка эталонных изображений и имя файла
* baseline:
* "/path/to/project/localBaseline/desktop_chrome/examplePage-chrome-headless-latest-1366x768.png",
* // Следующая папка опциональна и существует только при несоответствии
* // Папка, содержащая различия, и имя файла
* diff: "/path/to/project/.tmp/diff/desktop_chrome/examplePage-chrome-headless-latest-1366x768.png",
* },
* // Процент несоответствия
* misMatchPercentage: 2.34,
* };
*/
Вывод изображения
Изображения ниже показывают только различия в результате выполнения команд проверки. Показаны только различия в браузере, но вывод для Android и iOS аналогичен.
- checkElement
- checkScreen
- checkFullPageScreen
await browser.checkElement("#__docusaurus_skipToContent_fallback > header > div > div.buttons_pzbO > a:nth-child(1)", "example-element-tag")
Текст кнопки был изменен с Get Started
на Getting Started!
и обнаружен как изменение.
await browser.checkScreen("example-page-tag")
Текст кнопки был изменен с Get Started
на Getting Started!
и обнаружен как изменение.
await browser.checkFullPageScreen("full-page-tag")
Текст кнопки был изменен с Get Started
на Getting Started!
и обнаружен как изменение.
Блокировка областей (Block-Outs)
Здесь вы найдете пример вывода для блокировки областей в Android NativeWebScreenshot и iOS, где статус+адрес и панель инструментов заблокированы.
- Android nativeWebScreenshot
- iOS