TestOptions
Playwright Test предоставляет множество параметров для настройки тестовой среды, браузера, контекста браузера и других.
Эти параметры обычно указываются в файле конфигурации через 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';
// Run tests in this file with portrait-like viewport.
test.use({ viewport: { width: 600, height: 900 } });
test('my portrait test', async ({ page }) => {
// ...
}); Свойства
acceptDownloads
Автоматически загружать все вложения. По умолчанию true , где все загрузки принимаются.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
acceptDownloads: false,
},
}); Тип
actionTimeout
Время ожидания по умолчанию для каждого действия Playwright в миллисекундах, по умолчанию 0 (нет времени ожидания).
Это время ожидания по умолчанию для всех действий Playwright, аналогично тому, что настроено через page.setDefaultTimeout().
Использование
import { defineConfig, devices } from '@playwright/test';
export default defineConfig({
use: {
/* Maximum time each action such as `click()` can take. Defaults to 0 (no limit). */
actionTimeout: 0,
},
}); Подробнее о различных таймаутах.
Тип
baseURL
При использовании 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: {
/* Base URL to use in actions like `await page.goto('/')`. */
baseURL: 'http://localhost:3000',
},
}); Тип
browserName
Имя браузера, в котором выполняются тесты. По умолчанию 'chromium'. Большинство времени вы должны установить browserName в вашем TestConfig:
Использование
import { defineConfig, devices } from '@playwright/test';
export default defineConfig({
use: {
browserName: 'firefox',
},
}); Тип
- "chromium" | "firefox" | "webkit"
bypassCSP
Включает/выключает обход политики Content-Security-Policy страницы. По умолчанию false.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
bypassCSP: true,
}
}); Тип
channel
Канал распространения браузера. Поддерживаемые значения: "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
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>
-
originstringТочная область происхождения, для которой сертификат действителен. Область происхождения включает
httpsпротокол, имя хоста и необязательно порт. -
certPathstring (необязательно)Путь к файлу с сертификатом в формате PEM.
-
certBuffer (необязательно)Прямое значение сертификата в формате PEM.
-
keyPathstring (необязательно)Путь к файлу с закрытым ключом в формате PEM.
-
keyBuffer (необязательно)Прямое значение закрытого ключа в формате PEM.
-
pfxPathstring (необязательно)Путь к файлу с закрытым ключом и цепочкой сертификатов в формате PFX или PKCS12.
-
pfxBuffer (необязательно)Прямое значение закрытого ключа и цепочки сертификатов в формате PFX или PKCS12.
-
passphrasestring (необязательно)Пароль для закрытого ключа (PEM или PFX).
-
Подробности
Массив сертификатов клиента, которые должны быть использованы. Каждый объект сертификата должен иметь либо и certPath и keyPath, либо один pfxPath, или их соответствующие прямые значения (cert и key, или pfx). Необязательно, passphrase свойство должно быть указано, если сертификат зашифрован. origin свойство должно быть указано с точным соответствием области происхождения запроса, для которой сертификат действителен.
примечаниеПри использовании WebKit на macOS доступ к
localhostне будет подбирать сертификаты клиентов. Вы можете заставить это работать, заменивlocalhostнаlocal.playwright.
colorScheme
Эмулирует 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
Использование
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
-
wsEndpointstringКонечная точка веб-сокет подключения браузера.
-
headersvoid | Object<string, string> (необязательно)Дополнительные HTTP-заголовки, которые будут отправлены с запросом соединения веб-сокета. Необязательно.
-
timeoutnumber (необязательно)Таймаут в миллисекундах для установления соединения. Необязательно, по умолчанию таймаут отсутствует.
-
exposeNetworkstring (необязательно)Параметр для экспонирования сетевого доступа подключенного клиента браузеру, к которому происходит подключение. Подробнее см. browserType.connect().
-
contextOptions
Параметры, используемые для создания контекста, передаваемые в browser.newContext(). Конкретные параметры, такие как testOptions.viewport, имеют приоритет.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
contextOptions: {
reducedMotion: 'reduce',
},
},
}); Тип
deviceScaleFactor
Укажите коэффициент масштабирования устройства (может быть представлен как dpr). По умолчанию 1. Подробнее о эмуляции устройств с коэффициентом масштабирования устройства.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
viewport: { width: 2560, height: 1440 },
deviceScaleFactor: 2,
},
}); Тип
extraHTTPHeaders
Объект, содержащий дополнительные HTTP-заголовки, которые будут отправляться с каждым запросом. По умолчанию отсутствуют.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
extraHTTPHeaders: {
'X-My-Header': 'value',
},
},
}); Тип
geolocation
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
geolocation: { longitude: 12.492507, latitude: 41.889938 },
},
}); Подробнее о геопозиционировании.
Тип
hasTouch
Указывает, поддерживает ли viewport события touch. По умолчанию false. Подробнее о эмуляции мобильных устройств.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
hasTouch: true
},
}); Тип
headless
Запускать браузер в режиме headless. Подробности для Chromium и Firefox. По умолчанию true , если параметр devtools равен true.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
headless: false
},
}); Тип
httpCredentials
Учетные данные для аутентификации HTTP. Если не указан источник, имя пользователя и пароль отправляются на все серверы при получении ответа об отсутствии авторизации.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
httpCredentials: {
username: 'user',
password: 'pass',
},
},
}); Тип
-
Object
-
usernamestring -
passwordstring -
originstring (необязательно)Ограничить отправку учетных данных HTTP для определенного источника (scheme://host:port).
-
send"unauthorized" | "always" (необязательно)Этот параметр применяется только к запросам, отправленным соответствующим APIRequestContext, и не влияет на запросы, отправленные из браузера.
'always'—Authorizationзаголовок с учетными данными базовой аутентификации будет отправлен с каждым API-запросом.'unauthorized— учетные данные отправляются только при получении ответа 401 (Не авторизован) с заголовкомWWW-Authenticate. По умолчанию'unauthorized'.
-
ignoreHTTPSErrors
Игнорировать ошибки HTTPS при отправке сетевых запросов. По умолчанию false.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
ignoreHTTPSErrors: true,
},
}); Тип
isMobile
Учитывается ли тег meta viewport и включены ли события touch. isMobile является частью устройства, поэтому вам не нужно устанавливать его вручную. По умолчанию false и не поддерживается в Firefox. Подробнее о эмуляции мобильных устройств.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
isMobile: false,
},
}); Тип
javaScriptEnabled
Включить JavaScript в контексте. По умолчанию true. Подробнее о отключении JavaScript.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
javaScriptEnabled: false,
},
}); Тип
launchOptions
Параметры, используемые для запуска браузера, передаваемые в 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
Укажите локаль пользователя, например en-GB, de-DE, и т. д. Локаль повлияет на значение navigator.language , значение заголовка запроса Accept-Language , а также на правила форматирования чисел и дат. По умолчанию используется системная локаль. Подробнее об эмуляции см. в нашем руководстве по эмуляции.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
locale: 'it-IT',
},
}); Тип
navigationTimeout
Таймаут для каждого действия перехода в миллисекундах. По умолчанию 0 (без таймаута).
Это значение по умолчанию для таймаута перехода, такое же, как настроено с помощью page.setDefaultNavigationTimeout().
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
navigationTimeout: 3000,
},
}); Подробнее о различных таймаутах.
Тип
offline
Эмулировать отключение сети. По умолчанию false. Подробнее об эмуляции сети.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
offline: true
},
}); Тип
permissions
Список разрешений для предоставления всем страницам в этом контексте. См. browserContext.grantPermissions() для получения дополнительной информации. По умолчанию нет.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
permissions: ['notifications'],
},
}); Тип
proxy
Настройки сетевого прокси-сервера.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
proxy: {
server: 'http://myproxy.com:3128',
bypass: 'localhost',
},
},
}); Тип
-
Объект
-
serverстрокаПрокси-сервер, используемый для всех запросов. Поддерживаются HTTP- и SOCKS-прокси, например
http://myproxy.com:3128илиsocks5://myproxy.com:3128. Сокращенная формаmyproxy.com:3128считается HTTP-прокси. -
bypassстрока (необязательно)Необязательные домены, отделенные запятыми, для обхода прокси, например
".com, chromium.org, .domain.com". -
usernameстрока (необязательно)Необязательное имя пользователя для использования, если HTTP-прокси требует аутентификации.
-
passwordстрока (необязательно)Необязательный пароль для использования, если HTTP-прокси требует аутентификации.
-
screenshot
Автоматически сохранять снимок экрана после каждого теста. По умолчанию 'off'.
-
'off': Не сохранять снимки экрана. -
'on': Сохранять снимок экрана после каждого теста. -
'only-on-failure': Сохранять снимок экрана после каждой неудачи теста. -
'on-first-failure': Сохранять снимок экрана после первой неудачи теста.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
screenshot: 'only-on-failure',
},
}); Подробнее о автоматических снимках экрана.
Тип
-
Объект | "выкл" | "вкл" | "только-при-ошибке" | "при-первой-ошибке"
-
mode"выкл" | "вкл" | "только-при-ошибке" | "при-первой-ошибке"Режим автоматического снимка экрана.
-
fullPageбулево значение (необязательно)При значении true сохраняется скриншот всей прокручиваемой страницы, а не только текущего видимого области просмотра. По умолчанию
false. -
omitBackgroundбулево значение (необязательно)Скрывает белый фон по умолчанию и позволяет сохранять скриншоты с прозрачностью. Не применимо к изображениям
jpeg. По умолчаниюfalse.
-
serviceWorkers
Разрешить сайтам регистрировать Service workers. По умолчанию 'allow'.
-
'allow': Service Workers могут быть зарегистрированы. -
'block': Playwright заблокирует всю регистрацию Service Workers.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
serviceWorkers: 'allow'
},
}); Тип
- "разрешить" | "заблокировать"
storageState
Подробнее о состоянии хранилища и аутентификации.
Заполняет контекст заданным состоянием хранилища. Этот параметр может использоваться для инициализации контекста с данными авторизованного пользователя, полученными с помощью browserContext.storageState().
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
storageState: 'storage-state.json',
},
}); Тип
-
строка | объект
-
cookiesмассив<объект>-
nameстрока -
valueстрока -
domainстрокаТребуется домен и путь. Чтобы куки применялись ко всем поддоменам, добавьте точку перед доменом, например: ".example.com"
-
pathстрокаТребуются домен и путь
-
expiresчислоВремя в формате Unix, секунды.
-
httpOnlyлогическое -
secureлогическое -
sameSite"Строгий" | "Расслабленный" | "Отсутствует"Флаг sameSite
-
-
originsмассив<объект> localStorage для установки в контексте
-
Подробности
При настройке состояния хранилища в конфигурации можно сбросить состояние хранилища для файла:
import { test } from '@playwright/test';
// Reset storage state for this file to avoid being authenticated
test.use({ storageState: { cookies: [], origins: [] } });
test('not signed in test', async ({ page }) => {
// ...
}); Атрибут testId
Пользовательский атрибут, используемый в page.getByTestId(). По умолчанию используется data-testid.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
testIdAttribute: 'pw-test-id',
},
}); Идентификатор часового пояса
Изменяет часовой пояс контекста. Список поддерживаемых идентификаторов часовых поясов см. в metaZones.txt ICU. По умолчанию используется системный часовой пояс.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
timezoneId: 'Europe/Rome',
},
}); Тип
Трейсировка
Включает запись трейса для каждого теста. По умолчанию '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'
},
}); Подробнее о записи трейса.
Тип
-
объект | "выкл" | "вкл" | "сохранять-при-ошибке" | "при-первом-повторном-выполнении" | "при-всех-повторных-выполнениях" | "сохранять-при-первой-ошибке"
-
mode"выкл" | "вкл" | "сохранять-при-ошибке" | "при-первом-повторном-выполнении" | "при-всех-повторных-выполнениях" | "сохранять-при-первой-ошибке"Режим записи трейса.
-
attachmentsлогическое (необязательно)Включает ли вложения тестов. По умолчанию true. Необязательно.
-
screenshotsлогическое (необязательно)Включает ли захват снимков экрана во время трассировки. Снимки экрана используются для построения предварительного просмотра временной шкалы. По умолчанию true. Необязательно.
-
snapshotsлогическое (необязательно)Включает ли захват снимка DOM на каждом действии. По умолчанию true. Необязательно.
-
sourcesлогическое (необязательно)Включает ли исходные файлы для действий трассировки. По умолчанию true. Необязательно.
-
UserAgent
Конкретный user agent, который нужно использовать в данном контексте.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
userAgent: 'some custom ua',
},
}); Тип
Видео
Включает запись видео для каждого теста. По умолчанию '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',
},
}); Подробнее о записи видео.
Тип
- объект | "выкл" | "вкл" | "сохранять-при-ошибке" | "при-первом-повторном-выполнении"
Область просмотра
Эмулирует согласованную область просмотра для каждой страницы. По умолчанию используется область просмотра 1280x720. Используйте null для отключения эмуляции согласованной области просмотра. Дополнительная информация о эмуляции области просмотра.
примечаниеЗначение
nullотключает использование предварительно заданных значений, делает область просмотра зависимой от размера окна хоста, определенного операционной системой. Это делает выполнение тестов недетерминированным.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
viewport: { width: 100, height: 100 },
},
}); Тип
© 2024 Microsoft
Licensed under the Apache License, Version 2.0.
https://playwright.dev/docs/api/class-testoptions