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Эта функция будет ждать, пока два последовательных скриншота страницы не дадут одинаковый результат, а затем сравнит последний скриншот с ожидаемым.
Использование
await expect(page).toHaveScreenshot('image.png');
Обратите внимание, что утверждения скриншотов работают только с тестовым раннером Playwright.
Аргументы
-
Имя снимка.
-
options
Object (опционально)-
animations
"disabled" | "allow" (опционально)#При установке в
"disabled"
, останавливает CSS-анимации, CSS-переходы и веб-анимации. Анимации получают разное обращение в зависимости от их продолжительности:- конечные анимации ускоряются до завершения, чтобы они вызвали событие
transitionend
. - бесконечные анимации отменяются до начального состояния, а затем воспроизводятся после скриншота.
По умолчанию
"disabled"
, что отключает анимации. - конечные анимации ускоряются до завершения, чтобы они вызвали событие
-
caret
"hide" | "initial" (опционально)#При установке в
"hide"
, скриншот скроет текстовый курсор. При установке в"initial"
, поведение текстового курсора не изменится. По умолчанию"hide"
. -
-
x
numberx-координата верхнего левого угла области обрезки
-
y
numbery-координата верхнего левого угла области обрезки
-
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
вTestConfig.expect
.
-
Возвращает
toHaveScreenshot(options)
Добавлено в: v1.23Эта функция будет ждать, пока два последовательных скриншота страницы не дадут одинаковый результат, а затем сравнит последний скриншот с ожидаемым.
Использование
await expect(page).toHaveScreenshot();
Обратите внимание, что утверждения скриншотов работают только с тестовым раннером Playwright.
Аргументы
options
Object (опционально)-
animations
"disabled" | "allow" (опционально)#При установке в
"disabled"
, останавливает CSS-анимации, CSS-переходы и веб-анимации. Анимации получают разное обращение в зависимости от их продолжительности:- конечные анимации ускоряются до завершения, чтобы они вызвали событие
transitionend
. - бесконечные анимации отменяются до начального состояния, а затем воспроизводятся после скриншота.
По умолчанию
"disabled"
, что отключает анимации. - конечные анимации ускоряются до завершения, чтобы они вызвали событие
-
caret
"hide" | "initial" (опционально)#При установке в
"hide"
, скриншот скроет текстовый курсор. При установке в"initial"
, поведение текстового курсора не изменится. По умолчанию"hide"
. -
-
x
numberx-координата верхнего левого угла области обрезки
-
y
numbery-координата верхнего левого угла области обрезки
-
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
вTestConfig.expect
.
-
Возвращает
toHaveTitle
Добавлено в: v1.20Убеждается, что страница имеет заданный заголовок.
Использование
await expect(page).toHaveTitle(/.*checkout/);
Аргументы
-
titleOrRegExp
string | RegExp Добавлено в: v1.18#Ожидаемый заголовок или регулярное выражение.
-
options
Object (опционально)
Возвращает
toHaveURL
Добавлено в: v1.20Убеждается, что страница перешла на заданный 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Делает проверку утверждения на противоположное условие. Например, этот код проверяет, что URL страницы не содержит "error"
:
await expect(page).not.toHaveURL('error');
Использование
expect(page).not
Тип