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

assertView

Обзор

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

к сведению

Эта команда реализована внутри Testplane, в API WebDriverIO её нет.

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

await browser.$(selector).assertView(state, options);
warning

Во время выполнения команда assertView вызывает waitForExist с waitTimeout и waitInterval.

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

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

state

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

options

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

ОпцияТипОписание
ignoreElementsArray или String

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

toleranceNumberЧувствительность к разнице в цветам.
antialiasingToleranceNumberЧувствительность в антиалиасинге.
allowViewportOverflowBoolean

По умолчанию Testplane выдает ошибку, если элемент находится за пределами границ вьюпорта. Этот параметр отключает проверку на границы, позволяя снимать скриншоты элементов, не влезающих во вьюпорт. При этом на скриншоте будут видны только те части элемента, которые влезли во вьюпорт. Однако если compositeImage равен true, то части элемента, которые оказались за нижней границей вьюпорта, тоже будут видны на скриншоте. Аналогично если captureElementFromTop равен true, то на скриншот попадут и те части элемента, которые оказались за пределами верхней границы вьюпорта.

captureElementFromTopBoolean

Снимать скриншот элемента с самого верха. Если элемент находится за пределами вьюпорта, то к нему будет выполнен подскролл.

compositeImageBoolean

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

screenshotDelayNumber

Задержка в миллисекундах перед снятием скриншота. Может пригодиться, когда на странице есть элементы, использующие анимацию, или скроллбар, который исчезает не сразу и попадает на результирующий скриншот.

selectorToScrollString

Селектор, который нужно скроллировать. Может пригодиться, когда надо сделать скриншот модального окна, которое не помещается на экране. Иначе без указания селектора скролл будет применяться к объекту window, и скроллироваться будет задний фон, оставляя попап-окно на месте.

disableAnimationBoolean

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

ignoreDiffPixelCount`${number}%` или Number

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

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

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");
});