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,
},
});
Тип
actionTimeout
Добавлено в: v1.10Тайм-аут по умолчанию для каждого действия Playwright в миллисекундах, по умолчанию 0 (без тайм-аута).
Это тайм-аут по умолчанию для всех действий Playwright, такой же, как настроен через page.setDefaultTimeout().
Использование
import { defineConfig, devices } from '@playwright/test';
export default defineConfig({
use: {
/* Максимальное время, которое может занять каждое действие, такое как `click()`. По умолчанию 0 (без ограничений). */
actionTimeout: 0,
},
});
Узнайте больше о различных тайм-аутах.
Тип
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',
},
});
Тип
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,
}
});
Тип
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'
},
},
]
});
Тип
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',
},
},
});
Тип
deviceScaleFactor
Добавлено в: v1.10Укажите коэффициент масштабирования устройства (можно рассматривать как dpr). По умолчанию 1
. Узнайте больше о эмуляции устройств с коэффициентом масштабирования устройства.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
viewport: { width: 2560, height: 1440 },
deviceScaleFactor: 2,
},
});
Тип
extraHTTPHeaders
Добавлено в: v1.10Объект, содержащий дополнительные HTTP-заголовки для отправки с каждым запросом. По умолчанию нет.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
extraHTTPHeaders: {
'X-My-Header': 'value',
},
},
});
Тип
geolocation
Добавлено в: v1.10Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
geolocation: { longitude: 12.492507, latitude: 41.889938 },
},
});
Узнайте больше о геолокации.
Тип
hasTouch
Добавлено в: v1.10Указывает, поддерживает ли видовая область сенсорные события. По умолчанию false. Узнайте больше о мобильной эмуляции.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
hasTouch: true
},
});
Тип
headless
Добавлено в: v1.10Запускать ли браузер в режиме без заголовка. Подробнее для Chromium и Firefox. По умолчанию true
, если только опция devtools не установлена в true
.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
headless: false
},
});
Тип
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,
},
});
Тип
isMobile
Добавлено в: v1.10Учитывается ли тег meta viewport
и включены ли сенсорные события. isMobile является частью устройства, поэтому вам не нужно устанавливать его вручную. По умолчанию false
и не поддерживается в Firefox. Узнайте больше о мобильной эмуляции.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
isMobile: false,
},
});
Тип
javaScriptEnabled
Добавлено в: v1.10Включать ли JavaScript в контексте. По умолчанию true
. Узнайте больше о отключении JavaScript.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
javaScriptEnabled: false,
},
});
Тип
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']
}
}
}
]
});
Тип
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',
},
});
Тип
navigationTimeout
Добавлено в: v1.10Тайм-аут для каждого действия навигации в миллисекундах. По умолчанию 0 (без тайм-аута).
Это тайм-аут навигации по умолчанию, такой же, как настроен через page.setDefaultNavigationTimeout().
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
navigationTimeout: 3000,
},
});
Узнайте больше о различных тайм-аутах.
Тип
offline
Добавлено в: v1.10Эмулировать ли отключение сети. По умолчанию false
. Узнайте больше о эмуляции сети.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
offline: true
},
});
Тип
permissions
Добавлено в: v1.10Список разрешений, которые нужно предоставить всем страницам в этом контексте. Подробнее см. browserContext.grantPermissions(). По умолчанию нет.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
permissions: ['notifications'],
},
});
Тип
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>
Детали
Когда состояние хранилища настроено в конфигурации, возможно сбросить состояние хранилища для файла:
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',
},
});
Тип
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',
},
});
Тип
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"
viewport
Добавлено в: v1.10Эмулирует постоянную видовую область для каждой страницы. По умолчанию используется видовая область 1280x720. Используйте null
, чтобы отключить эмуляцию постоянной видовой области. Узнайте больше о эмуляции видовой области.
Значение null
исключает использование предустановок по умолчанию, делает видовую область зависимой от размера окна хоста, определяемого операционной системой. Это делает выполнение тестов недетерминированным.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
viewport: { width: 100, height: 100 },
},
});
Тип