TestOptions
Playwright Test предоставляет множество опций для настройки тестовой среды, [Browser], [BrowserContext] и других.
Эти опции обычно указываются в файле конфигурации через testConfig.use и testProject.use.
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
headless: false,
viewport: { width: 1280, height: 720 },
ignoreHTTPSErrors: true,
video: 'on-first-retry',
},
});
Кроме того, с помощью test.use() вы можете переопределить некоторые опции для файла.
import { test, expect } from '@playwright/test';
// Запуск тестов в этом файле с портретным видом.
test.use({ viewport: { width: 600, height: 900 } });
test('my portrait test', async ({ page }) => {
// ...
});
Свойства
acceptDownloads
Добавлено в: v1.10Автоматически загружать все вложения. По умолчанию true
, что означает, что все загрузки принимаются.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
acceptDownloads: false,
},
});
Тип
- [boolean]
actionTimeout
Добавлено в: v1.10Тайм-аут по умолчанию для каждого действия Playwright в миллисекундах, по умолчанию 0 (без тайм-аута).
Это тайм-аут по умолчанию для всех действий Playwright, такой же, как настроен через page.setDefaultTimeout().
Использование
import { defineConfig, devices } from '@playwright/test';
export default defineConfig({
use: {
/* Максимальное время, которое может занять каждое действие, такое как `click()`. По умолчанию 0 (без ограничений). */
actionTimeout: 0,
},
});
Узнайте больше о различных тайм-аутах.
Тип
- [number]
baseURL
Добавлено в: v1.10При использовании page.goto(), page.route(), page.waitForURL(), page.waitForRequest() или page.waitForResponse() учитывается базовый URL, используя конструктор URL()
для построения соответствующего URL. По умолчанию не установлен. Примеры:
- baseURL:
http://localhost:3000
и переход на/bar.html
приводит кhttp://localhost:3000/bar.html
- baseURL:
http://localhost:3000/foo/
и переход на./bar.html
приводит кhttp://localhost:3000/foo/bar.html
- baseURL:
http://localhost:3000/foo
(без завершающего слэша) и переход на./bar.html
приводит кhttp://localhost:3000/bar.html
Использование
import { defineConfig, devices } from '@playwright/test';
export default defineConfig({
use: {
/* Базовый URL для использования в действиях, таких как `await page.goto('/')`. */
baseURL: 'http://localhost:3000',
},
});
Тип
- [string]
browserName
Добавлено в: v1.10Имя браузера, в котором выполняются тесты. По умолчанию 'chromium'
. В большинстве случаев следует устанавливать browserName
в вашем [TestConfig]:
Использование
import { defineConfig, devices } from '@playwright/test';
export default defineConfig({
use: {
browserName: 'firefox',
},
});
Тип
- "chromium" | "firefox" | "webkit"
bypassCSP
Добавлено в: v1.10Переключает обход политики безопасности содержимого страницы. По умолчанию false
.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
bypassCSP: true,
}
});
Тип
- [boolean]
channel
Добавлено в: v1.10Канал распространения браузера.
Используйте "chromium", чтобы включить новый режим без заголовка.
Используйте "chrome", "chrome-beta", "chrome-dev", "chrome-canary", "msedge", "msedge-beta", "msedge-dev" или "msedge-canary", чтобы использовать брендированные Google Chrome и Microsoft Edge.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
projects: [
{
name: 'Microsoft Edge',
use: {
...devices['Desktop Edge'],
channel: 'msedge'
},
},
]
});
Тип
- [string]
clientCertificates
Добавлено в: 1.46Аутентификация клиента TLS позволяет серверу запросить клиентский сертификат и проверить его.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
clientCertificates: [{
origin: 'https://example.com',
certPath: './cert.pem',
keyPath: './key.pem',
passphrase: 'mysecretpassword',
}],
},
});
Тип
- [Array]<[Object]>
-
origin
[string]Точный источник, для которого сертификат действителен. Источник включает протокол
https
, имя хоста и, возможно, порт. -
certPath
[string] (optional)Путь к файлу с сертификатом в формате PEM.
-
cert
[Buffer] (optional)Прямое значение сертификата в формате PEM.
-
keyPath
[string] (optional)Путь к файлу с закрытым ключом в формате PEM.
-
key
[Buffer] (optional)Прямое значение закрытого ключа в формате PEM.
-
pfxPath
[string] (optional)Путь к PFX или PKCS12 закодированному закрытому ключу и цепочке сертификатов.
-
pfx
[Buffer] (optional)Прямое значение PFX или PKCS12 закодированного закрытого ключа и цепочки сертификатов.
-
passphrase
[string] (optional)Пароль для закрытого ключа (PEM или PFX).
-
Детали
Массив клиентских сертификатов для использования. Каждый объект сертификата должен иметь либо оба certPath
и keyPath
, либо один pfxPath
, или их соответствующие прямые значения (cert
и key
, или pfx
). При необходимости, свойство passphrase
должно быть предоставлено, если сертификат зашифрован. Свойство origin
должно быть предоставлено с точным совпадением с источником запроса, для которого сертификат действителен.
При использовании WebKit на macOS доступ к localhost
не будет использовать клиентские сертификаты. Вы можете сделать это, заменив localhost
на local.playwright
.
colorScheme
Добавлено в: v1.10Эмулирует медиа-функцию prefers-colors-scheme, поддерживаемые значения: 'light'
и 'dark'
. Подробнее см. page.emulateMedia(). Передача null
сбрасывает эмуляцию на системные настройки по умолчанию. По умолчанию 'light'
.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
colorScheme: 'dark',
},
});
Тип
- [null] | "light" | "dark" | "no-preference"
connectOptions
Добавлено в: v1.10Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
connectOptions: {
wsEndpoint: 'ws://localhost:5678',
},
},
});
Когда указаны параметры подключения, по умолчанию fixtures.browser, fixtures.context и fixtures.page используют удаленный браузер вместо запуска браузера локально, и любые параметры запуска, такие как testOptions.headless или testOptions.channel, игнорируются.
Тип
- [void] | [Object]
-
wsEndpoint
[string]Веб-сокетный конечный пункт браузера для подключения.
-
headers
[void] | [Object]<[string], [string]> (optional)Дополнительные HTTP-заголовки для отправки с запросом на подключение веб-сокета. Необязательно.
-
timeout
[number] (optional)Тайм-аут в миллисекундах для установления соединения. Необязательно, по умолчанию без тайм-аута.
-
exposeNetwork
[string] (optional)Опция для предоставления сети, доступной на подключающемся клиенте, браузеру, к которому подключаются. Подробнее см. browserType.connect().
-
contextOptions
Добавлено в: v1.10Опции, используемые для создания контекста, как передано в browser.newContext(). Конкретные опции, такие как testOptions.viewport, имеют приоритет над этим.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
contextOptions: {
reducedMotion: 'reduce',
},
},
});
Тип
- [Object]
deviceScaleFactor
Добавлено в: v1.10Укажите коэффициент масштабирования устройства (можно рассматривать как dpr). По умолчанию 1
. Узнайте больше о эмуляции устройств с коэффициентом масштабирования устройства.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
viewport: { width: 2560, height: 1440 },
deviceScaleFactor: 2,
},
});
Тип
- [number]
extraHTTPHeaders
Добавлено в: v1.10Объект, содержащий дополнительные HTTP-заголовки для отправки с каждым запросом. По умолчанию нет.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
extraHTTPHeaders: {
'X-My-Header': 'value',
},
},
});
Тип
- [Object]<[string], [string]>
geolocation
Добавлено в: v1.10Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
geolocation: { longitude: 12.492507, latitude: 41.889938 },
},
});
Узнайте больше о геолокации.
Тип
- [Object]
-
latitude
[number]Широта между -90 и 90.
-
longitude
[number]Долгота между -180 и 180.
-
accuracy
[number] (optional)Неотрицательное значение точности. По умолчанию
0
.
-
hasTouch
Добавлено в: v1.10Указывает, поддерживает ли видовая область сенсорные события. По умолчанию false. Узнайте больше о мобильной эмуляции.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
hasTouch: true
},
});
Тип
- [boolean]
headless
Добавлено в: v1.10Запускать ли браузер в режиме без заголовка. Подробнее для Chromium и Firefox. По умолчанию true
, если только опция devtools не установлена в true
.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
headless: false
},
});
Тип
- [boolean]
httpCredentials
Добавлено в: v1.10Учетные данные для HTTP-аутентификации. Если источник не указан, имя пользователя и пароль отправляются на любые серверы при неавторизованных ответах.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
httpCredentials: {
username: 'user',
password: 'pass',
},
},
});
Тип
- [Object]
-
username
[string] -
password
[string] -
origin
[string] (optional)Ограничить отправку http-учетных данных на конкретный источник (scheme://host:port).
-
send
"unauthorized" | "always" (optional)Эта опция применяется только к запросам, отправленным из соответствующего [APIRequestContext], и не влияет на запросы, отправленные из браузера.
'always'
- заголовокAuthorization
с учетными данными базовой аутентификации будет отправлен с каждым API-запросом.'unauthorized
- учетные данные отправляются только при получении ответа 401 (Unauthorized) с заголовкомWWW-Authenticate
. По умолчанию'unauthorized'
.
-
ignoreHTTPSErrors
Добавлено в: v1.10Игнорировать ли ошибки HTTPS при отправке сетевых запросов. По умолчанию false
.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
ignoreHTTPSErrors: true,
},
});
Тип
- [boolean]
isMobile
Добавлено в: v1.10Учитывается ли тег meta viewport
и включены ли сенсорные события. isMobile является частью устройства, поэтому вам не нужно устанавливать его вручную. По умолчанию false
и не поддерживается в Firefox. Узнайте больше о мобильной эмуляции.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
isMobile: false,
},
});
Тип
- [boolean]
javaScriptEnabled
Добавлено в: v1.10Включать ли JavaScript в контексте. По умолчанию true
. Узнайте больше о отключении JavaScript.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
javaScriptEnabled: false,
},
});
Тип
- [boolean]
launchOptions
Добавлено в: v1.10Опции, используемые для запуска браузера, как передано в browserType.launch(). Конкретные опции testOptions.headless и testOptions.channel имеют приоритет над этим.
Используйте пользовательские аргументы браузера на свой страх и риск, так как некоторые из них могут нарушить функциональность Playwright.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
projects: [
{
name: 'chromium',
use: {
...devices['Desktop Chrome'],
launchOptions: {
args: ['--start-maximized']
}
}
}
]
});
Тип
- [Object]
locale
Добавлено в: v1.10Укажите локаль пользователя, например en-GB
, de-DE
и т.д. Локаль повлияет на значение navigator.language
, значение заголовка запроса Accept-Language
, а также на правила форматирования чисел и дат. По умолчанию en-US
. Узнайте больше об эмуляции в нашем руководстве по эмуляции.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
locale: 'it-IT',
},
});
Тип
- [string]
navigationTimeout
Добавлено в: v1.10Тайм-аут для каждого действия навигации в миллисекундах. По умолчанию 0 (без тайм-аута).
Это тайм-аут навигации по умолчанию, такой же, как настроен через page.setDefaultNavigationTimeout().
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
navigationTimeout: 3000,
},
});
Узнайте больше о различных тайм-аутах.
Тип
- [number]
offline
Добавлено в: v1.10Эмулировать ли отключение сети. По умолчанию false
. Узнайте больше о эмуляции сети.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
offline: true
},
});
Тип
- [boolean]
permissions
Добавлено в: v1.10Список разрешений, которые нужно предоставить всем страницам в этом контексте. Подробнее см. browserContext.grantPermissions(). По умолчанию нет.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
permissions: ['notifications'],
},
});
Тип
- [Array]<[string]>
proxy
Добавлено в: v1.10Настройки сетевого прокси.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
proxy: {
server: 'http://myproxy.com:3128',
bypass: 'localhost',
},
},
});
Тип
- [Object]
-
server
[string]Прокси для использования для всех запросов. Поддерживаются HTTP и SOCKS прокси, например
http://myproxy.com:3128
илиsocks5://myproxy.com:3128
. Краткая формаmyproxy.com:3128
считается HTTP прокси. -
bypass
[string] (optional)Необязательные домены, разделенные запятыми, для обхода прокси, например
".com, chromium.org, .domain.com"
. -
username
[string] (optional)Необязательное имя пользователя для использования, если HTTP прокси требует аутентификации.
-
password
[string] (optional)Необязательный пароль для использования, если HTTP прокси требует аутентификации.
-
screenshot
Добавлено в: v1.10Автоматически ли захватывать скриншот после каждого теста. По умолчанию 'off'
.
'off'
: Не захватывать скриншоты.'on'
: Захватывать скриншот после каждого теста.'only-on-failure'
: Захватывать скриншот после каждого сбоя теста.'on-first-failure'
: Захватывать скриншот после первого сбоя каждого теста.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
screenshot: 'only-on-failure',
},
});
Узнайте больше о автоматических скриншотах.
Тип
- [Object] | "off" | "on" | "only-on-failure" | "on-first-failure"
-
mode
"off" | "on" | "only-on-failure" | "on-first-failure"Режим автоматического захвата скриншотов.
-
fullPage
[boolean] (optional)Если true, делает скриншот всей прокручиваемой страницы, а не только видимой области. По умолчанию
false
. -
omitBackground
[boolean] (optional)Скрывает белый фон по умолчанию и позволяет захватывать скриншоты с прозрачностью. Не применимо к изображениям
jpeg
. По умолчаниюfalse
.
-
serviceWorkers
Добавлено в: v1.10Разрешать ли сайтам регистрировать сервис-воркеры. По умолчанию 'allow'
.
'allow'
: Сервис-воркеры могут быть зарегистрированы.'block'
: Playwright будет блокировать всю регистрацию сервис-воркеров.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
serviceWorkers: 'allow'
},
});
Тип
- "allow" | "block"
storageState
Добавлено в: v1.10Узнайте больше о состоянии хранилища и аутентификации.
Заполняет контекст заданным состоянием хранилища. Эта опция может быть использована для инициализации контекста с информацией о входе, полученной через browserContext.storageState().
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
storageState: 'storage-state.json',
},
});
Тип
- [string] | [Object]
cookies
[Array]<[Object]>-
name
[string] -
value
[string] -
domain
[string]Домен и путь обязательны. Чтобы cookie применялись ко всем поддоменам, добавьте точку перед доменом, например: ".example.com"
-
path
[string]Домен и путь обязательны
-
expires
[number]Время Unix в секундах.
-
httpOnly
[boolean] -
secure
[boolean] -
sameSite
"Strict" | "Lax" | "None"флаг sameSite
-
origins
[Array]<[Object]>-
origin
[string] -
localStorage
[Array]<[Object]>-
name
[string] -
value
[string]
localStorage для установки в контексте
-
-
Детали
Когда состояние хранилища настроено в конфигурации, возможно сбросить состояние хранилища для файла:
import { test } from '@playwright/test';
// Сброс состояния хранилища для этого файла, чтобы избежать аутентификации
test.use({ storageState: { cookies: [], origins: [] } });
test('not signed in test', async ({ page }) => {
// ...
});
testIdAttribute
Добавлено в: v1.27Пользовательский атрибут для использования в page.getByTestId(). По умолчанию используется data-testid
.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
testIdAttribute: 'pw-test-id',
},
});
timezoneId
Добавлено в: v1.10Изменяет часовой пояс контекста. См. ICU's metaZones.txt для списка поддерживаемых идентификаторов часовых поясов. По умолчанию используется системный часовой пояс.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
timezoneId: 'Europe/Rome',
},
});
Тип
- [string]
trace
Добавлено в: v1.10Записывать ли трассировку для каждого теста. По умолчанию 'off'
.
'off'
: Не записывать трассировку.'on'
: Записывать трассировку для каждого теста.'on-first-retry'
: Записывать трассировку только при первой повторной попытке теста.'on-all-retries'
: Записывать трассировку только при повторных попытках теста.'retain-on-failure'
: Записывать трассировку для каждого теста. При успешном выполнении теста удалить записанную трассировку.'retain-on-first-failure'
: Записывать трассировку для первого запуска каждого теста, но не для повторных попыток. При успешном выполнении теста удалить записанную трассировку.
Для более точного контроля передайте объект, который указывает mode
и функции трассировки для включения.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
trace: 'on-first-retry'
},
});
Узнайте больше о записи трассировки.
Тип
- [Object] | "off" | "on" | "retain-on-failure" | "on-first-retry" | "retain-on-first-failure"
-
mode
"off" | "on" | "retain-on-failure" | "on-first-retry" | "on-all-retries" | "retain-on-first-failure"Режим записи трассировки.
-
attachments
[boolean] (optional)Включать ли вложения теста. По умолчанию true. Необязательно.
-
screenshots
[boolean] (optional)Захватывать ли скриншоты во время трассировки. Скриншоты используются для создания предварительного просмотра временной шкалы. По умолчанию true. Необязательно.
-
snapshots
[boolean] (optional)Захватывать ли снимок DOM на каждое действие. По умолчанию true. Необязательно.
-
sources
[boolean] (optional)Включать ли исходные файлы для действий трассировки. По умолчанию true. Необязательно.
-
userAgent
Добавлено в: v1.10Конкретный пользовательский агент для использования в этом контексте.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
userAgent: 'some custom ua',
},
});
Тип
- [string]
video
Добавлено в: v1.10Записывать ли видео для каждого теста. По умолчанию 'off'
.
'off'
: Не записывать видео.'on'
: Записывать видео для каждого теста.'retain-on-failure'
: Записывать видео для каждого теста, но удалять все видео успешных тестов.'on-first-retry'
: Записывать видео только при первой повторной попытке теста.
Чтобы контролировать размер видео, передайте объект с свойствами mode
и size
. Если размер видео не указан, он будет равен testOptions.viewport, уменьшенному для соответствия 800x800. Если viewport
не настроен явно, размер видео по умолчанию составляет 800x450. Фактическое изображение каждой страницы будет уменьшено, если необходимо, чтобы соответствовать указанному размеру.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
video: 'on-first-retry',
},
});
Узнайте больше о записи видео.
Тип
- [Object] | "off" | "on" | "retain-on-failure" | "on-first-retry"
-
mode
"off" | "on" | "retain-on-failure" | "on-first-retry"Режим записи видео.
-
size
[Object] (optional)-
width
[number] -
height
[number]
Размер записанного видео. Необязательно.
-
-
viewport
Добавлено в: v1.10Эмулирует постоянную видовую область для каждой страницы. По умолчанию используется видовая область 1280x720. Используйте null
, чтобы отключить эмуляцию постоянной видовой области. Узнайте больше о эмуляции видовой области.
Значение null
исключает использование предустановок по умолчанию, делает видовую область зависимой от размера окна хоста, определяемого операционной системой. Это делает выполнение тестов недетерминированным.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
viewport: { width: 100, height: 100 },
},
});
Тип
- [null] | [Object]
-
width
[number]ширина страницы в пикселях.
-
height
[number]высота страницы в пикселях.
-