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

PageAssertions

Класс PageAssertions предоставляет методы утверждений, которые могут быть использованы для проверки состояния Page в тестах.

import { test, expect } from '@playwright/test';

test('navigates to login', async ({ page }) => {
// ...
await page.getByText('Sign in').click();
await expect(page).toHaveURL(/.*\/login/);
});

Методы

toHaveScreenshot(name)

Добавлено в: v1.23 pageAssertions.toHaveScreenshot(name)

Эта функция будет ждать, пока два последовательных скриншота страницы не дадут одинаковый результат, а затем сравнит последний скриншот с ожидаемым.

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

await expect(page).toHaveScreenshot('image.png');

Обратите внимание, что утверждения скриншотов работают только с тестовым раннером Playwright.

Аргументы

  • name string | Array<string>#

    Имя снимка.

  • options Object (опционально)

    • animations "disabled" | "allow" (опционально)#

      При установке в "disabled", останавливает CSS-анимации, CSS-переходы и веб-анимации. Анимации получают разное обращение в зависимости от их продолжительности:

      • конечные анимации ускоряются до завершения, чтобы они вызвали событие transitionend.
      • бесконечные анимации отменяются до начального состояния, а затем воспроизводятся после скриншота.

      По умолчанию "disabled", что отключает анимации.

    • caret "hide" | "initial" (опционально)#

      При установке в "hide", скриншот скроет текстовый курсор. При установке в "initial", поведение текстового курсора не изменится. По умолчанию "hide".

    • clip Object (опционально)#

      • x number

        x-координата верхнего левого угла области обрезки

      • y number

        y-координата верхнего левого угла области обрезки

      • width number

        ширина области обрезки

      • height number

        высота области обрезки

      Объект, который определяет обрезку результирующего изображения.

    • fullPage boolean (опционально)#

      Если true, делает скриншот всей прокручиваемой страницы, вместо текущей видимой области. По умолчанию false.

    • mask Array<Locator> (опционально)#

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

    • maskColor string (опционально) Добавлено в: v1.35#

      Укажите цвет наложения для замаскированных элементов в формате цвета CSS. Цвет по умолчанию - розовый #FF00FF.

    • maxDiffPixelRatio number (опционально)#

      Допустимое соотношение пикселей, которые отличаются от общего количества пикселей, между 0 и 1. По умолчанию настраивается с помощью TestConfig.expect. По умолчанию не установлено.

    • maxDiffPixels number (опционально)#

      Допустимое количество пикселей, которые могут отличаться. По умолчанию настраивается с помощью TestConfig.expect. По умолчанию не установлено.

    • omitBackground boolean (опционально)#

      Скрывает белый фон по умолчанию и позволяет делать скриншоты с прозрачностью. Не применимо к изображениям jpeg. По умолчанию false.

    • scale "css" | "device" (опционально)#

      При установке в "css", скриншот будет иметь один пиксель на каждый css пиксель на странице. Для устройств с высоким разрешением это позволит уменьшить размер скриншотов. Использование опции "device" создаст один пиксель на каждый пиксель устройства, так что скриншоты устройств с высоким разрешением будут в два раза больше или даже больше.

      По умолчанию "css".

    • stylePath string | Array<string> (опционально) Добавлено в: v1.41#

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

    • threshold number (опционально)#

      Допустимая воспринимаемая разница в цвете в цветовом пространстве YIQ между одним и тем же пикселем в сравниваемых изображениях, между нулем (строго) и единицей (свободно), по умолчанию настраивается с помощью TestConfig.expect. По умолчанию 0.2.

    • timeout number (опционально)#

      Время для повторной попытки утверждения в миллисекундах. По умолчанию timeout в TestConfig.expect.

Возвращает


toHaveScreenshot(options)

Добавлено в: v1.23 pageAssertions.toHaveScreenshot(options)

Эта функция будет ждать, пока два последовательных скриншота страницы не дадут одинаковый результат, а затем сравнит последний скриншот с ожидаемым.

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

await expect(page).toHaveScreenshot();

Обратите внимание, что утверждения скриншотов работают только с тестовым раннером Playwright.

Аргументы

  • options Object (опционально)
    • animations "disabled" | "allow" (опционально)#

      При установке в "disabled", останавливает CSS-анимации, CSS-переходы и веб-анимации. Анимации получают разное обращение в зависимости от их продолжительности:

      • конечные анимации ускоряются до завершения, чтобы они вызвали событие transitionend.
      • бесконечные анимации отменяются до начального состояния, а затем воспроизводятся после скриншота.

      По умолчанию "disabled", что отключает анимации.

    • caret "hide" | "initial" (опционально)#

      При установке в "hide", скриншот скроет текстовый курсор. При установке в "initial", поведение текстового курсора не изменится. По умолчанию "hide".

    • clip Object (опционально)#

      • x number

        x-координата верхнего левого угла области обрезки

      • y number

        y-координата верхнего левого угла области обрезки

      • width number

        ширина области обрезки

      • height number

        высота области обрезки

      Объект, который определяет обрезку результирующего изображения.

    • fullPage boolean (опционально)#

      Если true, делает скриншот всей прокручиваемой страницы, вместо текущей видимой области. По умолчанию false.

    • mask Array<Locator> (опционально)#

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

    • maskColor string (опционально) Добавлено в: v1.35#

      Укажите цвет наложения для замаскированных элементов в формате цвета CSS. Цвет по умолчанию - розовый #FF00FF.

    • maxDiffPixelRatio number (опционально)#

      Допустимое соотношение пикселей, которые отличаются от общего количества пикселей, между 0 и 1. По умолчанию настраивается с помощью TestConfig.expect. По умолчанию не установлено.

    • maxDiffPixels number (опционально)#

      Допустимое количество пикселей, которые могут отличаться. По умолчанию настраивается с помощью TestConfig.expect. По умолчанию не установлено.

    • omitBackground boolean (опционально)#

      Скрывает белый фон по умолчанию и позволяет делать скриншоты с прозрачностью. Не применимо к изображениям jpeg. По умолчанию false.

    • scale "css" | "device" (опционально)#

      При установке в "css", скриншот будет иметь один пиксель на каждый css пиксель на странице. Для устройств с высоким разрешением это позволит уменьшить размер скриншотов. Использование опции "device" создаст один пиксель на каждый пиксель устройства, так что скриншоты устройств с высоким разрешением будут в два раза больше или даже больше.

      По умолчанию "css".

    • stylePath string | Array<string> (опционально) Добавлено в: v1.41#

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

    • threshold number (опционально)#

      Допустимая воспринимаемая разница в цвете в цветовом пространстве YIQ между одним и тем же пикселем в сравниваемых изображениях, между нулем (строго) и единицей (свободно), по умолчанию настраивается с помощью TestConfig.expect. По умолчанию 0.2.

    • timeout number (опционально)#

      Время для повторной попытки утверждения в миллисекундах. По умолчанию timeout в TestConfig.expect.

Возвращает


toHaveTitle

Добавлено в: v1.20 pageAssertions.toHaveTitle

Убеждается, что страница имеет заданный заголовок.

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

await expect(page).toHaveTitle(/.*checkout/);

Аргументы

  • titleOrRegExp string | RegExp Добавлено в: v1.18#

    Ожидаемый заголовок или регулярное выражение.

  • options Object (опционально)

    • timeout number (опционально) Добавлено в: v1.18#

      Время для повторной попытки утверждения в миллисекундах. По умолчанию timeout в TestConfig.expect.

Возвращает


toHaveURL

Добавлено в: v1.20 pageAssertions.toHaveURL

Убеждается, что страница перешла на заданный URL.

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

// Проверка, что URL страницы равен 'https://playwright.dev/docs/intro' (включая строку запроса)
await expect(page).toHaveURL('https://playwright.dev/docs/intro');

// Проверка, что URL страницы содержит 'doc', за которым следует необязательная 's', за которой следует '/'
await expect(page).toHaveURL(/docs?\//);

// Проверка, что предикат удовлетворен
// Например: проверка строк запроса
await expect(page).toHaveURL(url => {
const params = url.searchParams;
return params.has('search') && params.has('options') && params.get('id') === '5';
});

Аргументы

  • url string | RegExp | function(URL):boolean Добавлено в: v1.18#

    Ожидаемая строка URL, регулярное выражение или предикат, получающий URL для совпадения. Когда baseURL предоставляется через параметры контекста и аргумент url является строкой, два значения объединяются с помощью конструктора new URL() и используются для сравнения с текущим URL браузера.

  • options Object (опционально)

    • ignoreCase boolean (опционально) Добавлено в: v1.44#

      Выполнять ли нечувствительное к регистру совпадение. Опция ignoreCase имеет приоритет над соответствующим параметром регулярного выражения, если указано. Предоставленный предикат игнорирует этот флаг.

    • timeout number (опционально) Добавлено в: v1.18#

      Время для повторной попытки утверждения в миллисекундах. По умолчанию timeout в TestConfig.expect.

Возвращает


Свойства

not

Добавлено в: v1.20 pageAssertions.not

Делает проверку утверждения на противоположное условие. Например, этот код проверяет, что URL страницы не содержит "error":

await expect(page).not.toHaveURL('error');

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

expect(page).not

Тип