Перейти к основному содержимому

assertView

Обзор

Используйте команду assertView, чтобы снять скриншот элемента для определенного состояния теста и сравнить его с эталонным.

Использование

await browser.$(selector).assertView(state, options);
к сведению

Команда assertView использует waitForExistwaitTimeout и waitInterval), чтобы дождаться появления элемента перед снятием скриншота.

assertView автоматически ждет загрузки статики (шрифтов, изображений и т.д.) с помощью команды waitForStaticToLoad.

Параметры команды

ИмяТипОписание
statestring

Обязательный параметр. Название состояния теста. Должно быть уникальным в пределах одного теста.

optionsAssertViewOptsНастройки команды assertView.

state

Обязательный параметр. Задает название состояния теста. Название должно быть уникальным в пределах одного теста.

options

Задает настройки команды assertView:

ОпцияТипОписание
ignoreElementsstring | string[]

Элементы (задаются как селекторы), которые будут проигнорированы при сравнении скриншотов. Игнор реализуется с помощью закраски перечисленных элементов черным цветом. Если по любому из селекторов найдено несколько элементов, будут проигнорированы все найденные элементы.

tolerancenumberЧувствительность к разнице в цветах, по умолчанию 3.0. Подробнее.
antialiasingTolerancenumberЧувствительность к антиалиасингу, по умолчанию 4. Подробнее.
allowViewportOverflowboolean

По умолчанию Testplane выводит предупреждение, если элемент не удалось снять целиком. Эта опция отключает предупреждение.

Используйте ее вместе с captureElementFromTop, чтобы полностью отключить скролл перед снятием скриншота.

captureElementFromTopboolean

По умолчанию Testplane может проскроллить страницу к элементу перед снятием скриншота, если элемент изначально не виден.

Если отключить эту опцию и элемент изначально не виден, Testplane выбросит ошибку.

compositeImageboolean

По умолчанию Testplane снимает элемент целиком: делает несколько скриншотов, скроллит элемент и затем склеивает изображения.

Если отключить эту опцию, будет снята только та часть элемента, которая видна на первом скриншоте.

screenshotDelaynumber

Задержка в миллисекундах перед снятием скриншота.

Может пригодиться, чтобы дождаться исчезновения скроллбара перед снятием скриншота.

disableAnimationboolean

Отключение анимаций и переходов при снятии скриншота. По умолчанию true начиная с версии 8.0.0

ignoreDiffPixelCountnumber | `${number}%`

Процент пикселей, которые нужно игнорировать при диффе. Удобно для игнорирования очень маленьких диффов.

По умолчанию 0. Доступен начиная с версии 8.2.0.

waitForStaticToLoadTimeoutnumber

По умолчанию 5000. Таймаут для команды waitForStaticToLoad, которая автоматически вызывается перед снятием скриншота.

Если указать 0, ожидание будет выключено. Доступно начиная с версии 8.32.0.

disableHover"always" | "never" | "when-scrolling-needed"

По умолчанию Testplane отключает hover-эффекты, если для полного скриншота элемента нужен скролл.

Доступно начиная с версии 9.0.0.

cropMargins{ top?: number, right?: number, bottom?: number, left?: number }

Задает отступы, на которые нужно обрезать скриншот. Удобно, например, чтобы обрезать скроллбары на Android-эмуляторах.

Доступно начиная с версии 9.0.0.

selectorToScrollstring

Устарело. Начиная с Testplane 9, элемент для скролла определяется автоматически.

Ручная настройка влияет на то, какой элемент Testplane будет скроллить при снятии скриншота.

Примеры использования

example.js

it("should assert view", async ({ browser }) => {
await browser.url("some/url");

const elem = await browser.$(".button");

await elem.assertView("plain");
await elem.click();
await elem.assertView("clicked");
});

История

ВерсияИзменения
v9.0.0

Крупное обновление логики работы assertView, подробнее в статье. Добавлены опции disableHover и cropMargins. Опция selectorToScroll устарела: теперь элемент для скролла определяется автоматически. Значение tolerance по умолчанию изменилось с 2.3 на 3.0.

v8.32.0Добавлена опция waitForStaticToLoadTimeout.
v8.2.0Добавлена опция ignoreDiffPixelCount.
v8.0.0Значение disableAnimation по умолчанию изменилось на true.