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.
Аргументы
-
Имя снимка. Должно иметь расширение
.pngили.webp; снимок экрана будет сохранён в соответствующем формате. Оба формата являются форматами без потерь. -
optionsObject (необязательно)-
animations"disabled" | "allow" (необязательно)Если задано значение
"disabled", останавливает CSS-анимации, CSS-переходы и Web Animations. Обработка анимаций зависит от их длительности:- конечные анимации ускоряются до завершения, поэтому они вызовут событие
transitionend. - бесконечные анимации отменяются и возвращаются в исходное состояние, а после создания снимка воспроизводятся снова.
По умолчанию задано значение
"disabled", которое отключает анимации. - конечные анимации ускоряются до завершения, поэтому они вызовут событие
-
caret"hide" | "initial" (необязательно)Если задано значение
"hide", снимок экрана будет скрывать текстовый курсор. Если задано значение"initial", поведение текстового курсора не изменится. По умолчанию задано значение"hide". -
clipObject (необязательно)-
xnumberКоордината x верхнего левого угла области обрезки
-
ynumberКоордината y верхнего левого угла области обрезки
-
widthnumberШирина области обрезки
-
heightnumberВысота области обрезки
Объект, задающий обрезку итогового изображения.
-
-
fullPageboolean (необязательно)Если значение равно true, создаётся снимок всей прокручиваемой страницы, а не только видимой в данный момент области просмотра. По умолчанию задано значение
false. -
maskArray<Locator> (необязательно)Укажите локаторы элементов, которые следует замаскировать при создании снимка экрана. Поверх замаскированных элементов будет наложен розовый прямоугольник
#FF00FF(его цвет можно изменить с помощью maskColor), полностью покрывающий их ограничивающую рамку. Маска также применяется к невидимым элементам; чтобы отключить это поведение, см. раздел Соответствие только видимым элементам. -
maskColorstring (необязательно)Задаёт цвет прямоугольника, накладываемого на замаскированные элементы, в формате цвета CSS. По умолчанию используется розовый цвет
#FF00FF. -
maxDiffPixelRationumber (необязательно)Допустимая доля отличающихся пикселей от общего количества пикселей — от
0до1. Значение по умолчанию можно настроить с помощьюTestConfig.expect. По умолчанию не задано. -
maxDiffPixelsnumber (необязательно)Допустимое количество отличающихся пикселей. Значение по умолчанию можно настроить с помощью
TestConfig.expect. По умолчанию не задано. -
omitBackgroundboolean (необязательно)Скрывает белый фон по умолчанию и позволяет создавать снимки экрана с прозрачностью. Не применяется к изображениям
jpeg. По умолчанию задано значениеfalse. -
scale"css" | "device" (необязательно)Если задано значение
"css", снимок экрана будет содержать один пиксель на каждый CSS-пиксель страницы. На устройствах с высоким разрешением это позволяет сохранять небольшой размер снимков. При использовании параметра"device"на каждый пиксель устройства будет приходиться один пиксель снимка, поэтому снимки экранов устройств с высоким разрешением будут вдвое больше или даже больше.По умолчанию задано значение
"css". -
signalAbortSignal (необязательно)Необязательный
AbortSignal, который может отменить проверку. Прерывание сигнала приводит к сбою проверки так же, как истечение времени ожидания: если сигнал прерван во время повторных попыток проверки или уже прерван до её начала, проверка завершается с ошибкой без дальнейших повторных попыток. -
stylePathstring | Array<string> (необязательно)Имя файла со стилями, которые будут применены при создании снимка экрана. С его помощью можно скрыть динамические элементы, сделать элементы невидимыми или изменить их свойства, чтобы создавать воспроизводимые снимки экрана. Эта таблица стилей проникает в Shadow DOM и применяется к внутренним фреймам.
-
thresholdnumber (необязательно)Допустимая воспринимаемая разница цветов в цветовом пространстве YIQ между одинаковыми пикселями сравниваемых изображений: от нуля (строгое сравнение) до единицы (неточное сравнение). Значение по умолчанию можно настроить с помощью
TestConfig.expect. По умолчанию задано значение0.2. -
timeoutnumber (необязательно)Время в миллисекундах, в течение которого следует повторять проверку. По умолчанию используется значение
timeoutвTestConfig.expect.
-
Возвращает
toHaveScreenshot(options)
Эта функция будет ждать, пока два последовательных снимка страницы не дадут одинаковый результат, а затем сравнит последний снимок с ожидаемым.
Снимок сохраняется в формате PNG. Чтобы сохранить его в формате WebP, передайте имя снимка с расширением .webp.
Использование
await expect(page).toHaveScreenshot();
Обратите внимание, что проверки снимков экрана работают только с тестовым раннером Playwright.
Аргументы
-
optionsObject (необязательно)-
animations"disabled" | "allow" (необязательно)Если задано значение
"disabled", останавливает CSS-анимации, CSS-переходы и Web Animations. Обработка анимаций зависит от их длительности:- конечные анимации ускоряются до завершения, поэтому они вызовут событие
transitionend. - бесконечные анимации отменяются и возвращаются в исходное состояние, а после создания снимка воспроизводятся снова.
По умолчанию задано значение
"disabled", которое отключает анимации. - конечные анимации ускоряются до завершения, поэтому они вызовут событие
-
caret"hide" | "initial" (необязательно)Если задано значение
"hide", снимок экрана будет скрывать текстовый курсор. Если задано значение"initial", поведение текстового курсора не изменится. По умолчанию задано значение"hide". -
clipObject (необязательно)-
xnumberКоордината x верхнего левого угла области обрезки
-
ynumberКоордината y верхнего левого угла области обрезки
-
widthnumberШирина области обрезки
-
heightnumberВысота области обрезки
Объект, задающий обрезку итогового изображения.
-
-
fullPageboolean (необязательно)Если значение равно true, создаётся снимок всей прокручиваемой страницы, а не только видимой в данный момент области просмотра. По умолчанию задано значение
false. -
maskArray<Locator> (необязательно)Укажите локаторы элементов, которые следует замаскировать при создании снимка экрана. Поверх замаскированных элементов будет наложен розовый прямоугольник
#FF00FF(его цвет можно изменить с помощью maskColor), полностью покрывающий их ограничивающую рамку. Маска также применяется к невидимым элементам; чтобы отключить это поведение, см. раздел Соответствие только видимым элементам. -
maskColorstring (необязательно)Задаёт цвет прямоугольника, накладываемого на замаскированные элементы, в формате цвета CSS. По умолчанию используется розовый цвет
#FF00FF. -
maxDiffPixelRationumber (необязательно)Допустимая доля отличающихся пикселей от общего количества пикселей — от
0до1. Значение по умолчанию можно настроить с помощьюTestConfig.expect. По умолчанию не задано. -
maxDiffPixelsnumber (необязательно)Допустимое количество отличающихся пикселей. Значение по умолчанию можно настроить с помощью
TestConfig.expect. По умолчанию не задано. -
omitBackgroundboolean (необязательно)Скрывает белый фон по умолчанию и позволяет создавать снимки экрана с прозрачностью. Не применяется к изображениям
jpeg. По умолчанию задано значениеfalse. -
scale"css" | "device" (необязательно)Если задано значение
"css", снимок экрана будет содержать один пиксель на каждый CSS-пиксель страницы. На устройствах с высоким разрешением это позволяет сохранять небольшой размер снимков. При использовании параметра"device"на каждый пиксель устройства будет приходиться один пиксель снимка, поэтому снимки экранов устройств с высоким разрешением будут вдвое больше или даже больше.По умолчанию задано значение
"css". -
signalAbortSignal (необязательно)Необязательный
AbortSignal, который может отменить проверку. Прерывание сигнала приводит к сбою проверки так же, как истечение времени ожидания: если сигнал прерван во время повторных попыток проверки или уже прерван до её начала, проверка завершается с ошибкой без дальнейших повторных попыток. -
stylePathstring | Array<string> (необязательно)Имя файла со стилями, которые будут применены при создании снимка экрана. С его помощью можно скрыть динамические элементы, сделать элементы невидимыми или изменить их свойства, чтобы создавать воспроизводимые снимки экрана. Эта таблица стилей проникает в Shadow DOM и применяется к внутренним фреймам.
-
thresholdnumber (необязательно)Допустимая воспринимаемая разница цветов в цветовом пространстве YIQ между одинаковыми пикселями сравниваемых изображений: от нуля (строгое сравнение) до единицы (неточное сравнение). Значение по умолчанию можно настроить с помощью
TestConfig.expect. По умолчанию задано значение0.2. -
timeoutnumber (необязательно)Время в миллисекундах, в течение которого следует повторять проверку. По умолчанию используется значение
timeoutвTestConfig.expect.
-
Возвращает
toHaveTitle
Проверяет, что у страницы задан указанный заголовок.
Использование
await expect(page).toHaveTitle(/.*checkout/);
Аргументы
-
Ожидаемый заголовок или RegExp.
-
optionsObject (необязательно)-
signalAbortSignal (необязательно)Необязательный
AbortSignal, который может отменить проверку. Прерывание сигнала приводит к сбою проверки так же, как истечение времени ожидания: если сигнал прерван во время повторных попыток проверки или уже прерван до её начала, проверка завершается с ошибкой без дальнейших повторных попыток. -
timeoutnumber (необязательно)Время в миллисекундах, в течение которого следует повторять проверку. По умолчанию используется значение
timeoutвTestConfig.expect.
-
Возвращает
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';
}); Аргументы
-
urlstring | RegExp | URLPattern | function(URL):booleanОжидаемая строка URL, RegExp или предикат, принимающий URL для сравнения. Если baseURL задан в параметрах контекста, а аргумент
urlявляется строкой, эти два значения объединяются с помощью конструктораnew URL()и используются для сравнения с текущим URL браузера. -
optionsObject (необязательно)-
ignoreCaseboolean (необязательно)Следует ли выполнять сравнение без учёта регистра. Если задан параметр ignoreCase, он имеет приоритет над соответствующим параметром регулярного выражения. Переданный предикат игнорирует этот флаг.
-
signalAbortSignal (необязательно)Необязательный
AbortSignal, который может отменить проверку. Прерывание сигнала приводит к сбою проверки так же, как истечение времени ожидания: если сигнал прерван во время повторных попыток проверки или уже прерван до её начала, проверка завершается с ошибкой без дальнейших повторных попыток. -
timeoutnumber (необязательно)Время в миллисекундах, в течение которого следует повторять проверку. По умолчанию используется значение
timeoutвTestConfig.expect.
-
Возвращает
toMatchAriaSnapshot(expected)
Проверяет, что содержимое страницы соответствует указанному снимку доступности.
Использование
await page.goto('https://demo.playwright.dev/todomvc/');
await expect(page).toMatchAriaSnapshot(`
- heading "todos"
- textbox "What needs to be done?"
`); Аргументы
-
expectedstring -
optionsObject (необязательно)-
signalAbortSignal (необязательно)Необязательный
AbortSignal, который может отменить проверку. Прерывание сигнала приводит к сбою проверки так же, как истечение времени ожидания: если сигнал прерван во время повторных попыток проверки или уже прерван до её начала, проверка завершается с ошибкой без дальнейших повторных попыток. -
timeoutnumber (необязательно)Время в миллисекундах, в течение которого следует повторять проверку. По умолчанию используется значение
timeoutвTestConfig.expect.
-
Возвращает
toMatchAriaSnapshot(options)
Проверяет, что содержимое страницы соответствует указанному снимку доступности.
Снимок хранится в отдельном файле .aria.yml в расположении, заданном свойствами expect.toMatchAriaSnapshot.pathTemplate и/или snapshotPathTemplate в файле конфигурации.
Использование
await expect(page).toMatchAriaSnapshot();
await expect(page).toMatchAriaSnapshot({ name: 'home.aria.yml' }); Аргументы
-
optionsObject (необязательно)-
namestring (необязательно)Имя снимка, который будет сохранён в папке снимков, соответствующей этому тесту. Если имя не указано, генерируются последовательные имена.
-
signalAbortSignal (необязательно)Необязательный
AbortSignal, который может отменить проверку. Прерывание сигнала приводит к сбою проверки так же, как истечение времени ожидания: если сигнал прерван во время повторных попыток проверки или уже прерван до её начала, проверка завершается с ошибкой без дальнейших повторных попыток. -
timeoutnumber (необязательно)Время в миллисекундах, в течение которого следует повторять проверку. По умолчанию используется значение
timeoutвTestConfig.expect.
-
Возвращает
Свойства
not
Проверяет противоположное условие.
Использование
Например, этот код проверяет, что URL страницы не содержит "error":
await expect(page).not.toHaveURL('error'); Тип
© 2026 Microsoft
Licensed under the Apache License, Version 2.0.
https://playwright.dev/docs/api/class-pageassertions