Spec-Zone.ru › Playwright

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)​

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

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

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

// Store the snapshot in the WebP format.
await expect(page).toHaveScreenshot('image.webp');

Обратите внимание, что проверки снимков экрана работают только с тестовым раннером Playwright.

Аргументы

  • name string | Array<string>

    Имя снимка. Должно иметь расширение .png или .webp; снимок экрана будет сохранён в соответствующем формате. Оба формата являются форматами без потерь.

  • options Object (необязательно)

    • animations "disabled" | "allow" (необязательно)

      Если задано значение "disabled", останавливает CSS-анимации, CSS-переходы и Web Animations. Обработка анимаций зависит от их длительности:

      • конечные анимации ускоряются до завершения, поэтому они вызовут событие 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 (необязательно)

      Задаёт цвет прямоугольника, накладываемого на замаскированные элементы, в формате цвета CSS. По умолчанию используется розовый цвет #FF00FF.

    • maxDiffPixelRatio number (необязательно)

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

    • maxDiffPixels number (необязательно)

      Допустимое количество отличающихся пикселей. Значение по умолчанию можно настроить с помощью TestConfig.expect. По умолчанию не задано.

    • omitBackground boolean (необязательно)

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

    • scale "css" | "device" (необязательно)

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

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

    • signal AbortSignal (необязательно)

      Необязательный AbortSignal, который может отменить проверку. Прерывание сигнала приводит к сбою проверки так же, как истечение времени ожидания: если сигнал прерван во время повторных попыток проверки или уже прерван до её начала, проверка завершается с ошибкой без дальнейших повторных попыток.

    • stylePath string | Array<string> (необязательно)

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

    • threshold number (необязательно)

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

    • timeout number (необязательно)

      Время в миллисекундах, в течение которого следует повторять проверку. По умолчанию используется значение timeout в TestConfig.expect.

Возвращает

  • Promise<void>

toHaveScreenshot(options)​

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

Снимок сохраняется в формате PNG. Чтобы сохранить его в формате WebP, передайте имя снимка с расширением .webp.

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

await expect(page).toHaveScreenshot();

Обратите внимание, что проверки снимков экрана работают только с тестовым раннером Playwright.

Аргументы

  • options Object (необязательно)
    • animations "disabled" | "allow" (необязательно)

      Если задано значение "disabled", останавливает CSS-анимации, CSS-переходы и Web Animations. Обработка анимаций зависит от их длительности:

      • конечные анимации ускоряются до завершения, поэтому они вызовут событие 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 (необязательно)

      Задаёт цвет прямоугольника, накладываемого на замаскированные элементы, в формате цвета CSS. По умолчанию используется розовый цвет #FF00FF.

    • maxDiffPixelRatio number (необязательно)

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

    • maxDiffPixels number (необязательно)

      Допустимое количество отличающихся пикселей. Значение по умолчанию можно настроить с помощью TestConfig.expect. По умолчанию не задано.

    • omitBackground boolean (необязательно)

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

    • scale "css" | "device" (необязательно)

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

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

    • signal AbortSignal (необязательно)

      Необязательный AbortSignal, который может отменить проверку. Прерывание сигнала приводит к сбою проверки так же, как истечение времени ожидания: если сигнал прерван во время повторных попыток проверки или уже прерван до её начала, проверка завершается с ошибкой без дальнейших повторных попыток.

    • stylePath string | Array<string> (необязательно)

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

    • threshold number (необязательно)

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

    • timeout number (необязательно)

      Время в миллисекундах, в течение которого следует повторять проверку. По умолчанию используется значение timeout в TestConfig.expect.

Возвращает

  • Promise<void>

toHaveTitle​

Проверяет, что у страницы задан указанный заголовок.

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

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

Аргументы

  • titleOrRegExp string | RegExp

    Ожидаемый заголовок или RegExp.

  • options Object (необязательно)

    • signal AbortSignal (необязательно)

      Необязательный AbortSignal, который может отменить проверку. Прерывание сигнала приводит к сбою проверки так же, как истечение времени ожидания: если сигнал прерван во время повторных попыток проверки или уже прерван до её начала, проверка завершается с ошибкой без дальнейших повторных попыток.

    • timeout number (необязательно)

      Время в миллисекундах, в течение которого следует повторять проверку. По умолчанию используется значение timeout в TestConfig.expect.

Возвращает

  • Promise<void>

toHaveURL​

Проверяет, что страница перешла по указанному URL.

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

// Check for the page URL to be 'https://playwright.dev/docs/intro' (including query string)
await expect(page).toHaveURL('https://playwright.dev/docs/intro');

// Check for the page URL to contain 'doc', followed by an optional 's', followed by '/'
await expect(page).toHaveURL(/docs?\//);

// Check for the page URL to match the URL pattern
await expect(page).toHaveURL(new URLPattern({ pathname: '/docs/*' }));

// Check for the predicate to be satisfied
// For example: verify query strings
await expect(page).toHaveURL(url => {
  const params = url.searchParams;
  return params.has('search') && params.has('options') && params.get('id') === '5';
});

Аргументы

  • url string | RegExp | URLPattern | function(URL):boolean

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

  • options Object (необязательно)

    • ignoreCase boolean (необязательно)

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

    • signal AbortSignal (необязательно)

      Необязательный AbortSignal, который может отменить проверку. Прерывание сигнала приводит к сбою проверки так же, как истечение времени ожидания: если сигнал прерван во время повторных попыток проверки или уже прерван до её начала, проверка завершается с ошибкой без дальнейших повторных попыток.

    • timeout number (необязательно)

      Время в миллисекундах, в течение которого следует повторять проверку. По умолчанию используется значение timeout в TestConfig.expect.

Возвращает

  • Promise<void>

toMatchAriaSnapshot(expected)​

Проверяет, что содержимое страницы соответствует указанному снимку доступности.

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

await page.goto('https://demo.playwright.dev/todomvc/');
await expect(page).toMatchAriaSnapshot(`
  - heading "todos"
  - textbox "What needs to be done?"
`);

Аргументы

  • expected string
  • options Object (необязательно)
    • signal AbortSignal (необязательно)

      Необязательный AbortSignal, который может отменить проверку. Прерывание сигнала приводит к сбою проверки так же, как истечение времени ожидания: если сигнал прерван во время повторных попыток проверки или уже прерван до её начала, проверка завершается с ошибкой без дальнейших повторных попыток.

    • timeout number (необязательно)

      Время в миллисекундах, в течение которого следует повторять проверку. По умолчанию используется значение timeout в TestConfig.expect.

Возвращает

  • Promise<void>

toMatchAriaSnapshot(options)​

Проверяет, что содержимое страницы соответствует указанному снимку доступности.

Снимок хранится в отдельном файле .aria.yml в расположении, заданном свойствами expect.toMatchAriaSnapshot.pathTemplate и/или snapshotPathTemplate в файле конфигурации.

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

await expect(page).toMatchAriaSnapshot();
await expect(page).toMatchAriaSnapshot({ name: 'home.aria.yml' });

Аргументы

  • options Object (необязательно)
    • name string (необязательно)

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

    • signal AbortSignal (необязательно)

      Необязательный AbortSignal, который может отменить проверку. Прерывание сигнала приводит к сбою проверки так же, как истечение времени ожидания: если сигнал прерван во время повторных попыток проверки или уже прерван до её начала, проверка завершается с ошибкой без дальнейших повторных попыток.

    • timeout number (необязательно)

      Время в миллисекундах, в течение которого следует повторять проверку. По умолчанию используется значение timeout в TestConfig.expect.

Возвращает

  • Promise<void>

Свойства​

not​

Проверяет противоположное условие.

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

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

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

Тип

  • PageAssertions

© 2026 Microsoft
Licensed under the Apache License, Version 2.0.
https://playwright.dev/docs/api/class-pageassertions

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API