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
Канал распространения браузера.
Используйте "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
Аутентификация клиента 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Точный origin, для которого действителен сертификат. Origin включает протокол
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 должно точно соответствовать origin запроса, для которого действителен сертификат.
Аутентификация с сертификатом клиента активна только при наличии хотя бы одного сертификата клиента. Чтобы отклонить все сертификаты клиентов, отправленные сервером, необходимо указать сертификат клиента с 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',
},
},
}); Тип
contrast
Эмулирует медиахарактеристику 'prefers-contrast'; поддерживаются значения 'no-preference', 'more'. Подробнее см. в описании page.emulateMedia(). Передача null сбрасывает эмуляцию к системным настройкам. По умолчанию — 'no-preference'.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
contrast: 'more',
},
}); Тип
- null | "no-preference" | "more"
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',
},
},
}); Тип
forcedColors
Эмулирует медиахарактеристику 'forced-colors'; поддерживаются значения 'active', 'none'. Подробнее см. в описании page.emulateMedia(). Передача null сбрасывает эмуляцию к системным настройкам. По умолчанию — 'none'.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
forcedColors: 'active',
},
}); Тип
- null | "active" | "none"
geolocation
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
geolocation: { longitude: 12.492507, latitude: 41.889938 },
},
}); Подробнее о геолокации.
Тип
hasTouch
Указывает, поддерживает ли область просмотра сенсорные события. По умолчанию — false. Подробнее о эмуляции мобильных устройств.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
hasTouch: true
},
}); Тип
headless
Запускать ли браузер в режиме без графического интерфейса. Подробнее о Chromium и Firefox. По умолчанию — true.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
headless: false
},
}); Тип
httpCredentials
Учётные данные для HTTP-аутентификации. Если origin не указан, имя пользователя и пароль отправляются на любые серверы в ответ на неавторизованные запросы.
Передайте массив, чтобы использовать разные учётные данные для разных origin. Используются первая запись, соответствующая origin запроса, а записи без origin соответствуют любому запросу.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
httpCredentials: {
username: 'user',
password: 'pass',
},
},
}); Тип
-
Object | Array<Object>
-
usernamestring -
passwordstring -
originstring (необязательно)Ограничивает отправку учётных данных HTTP указанным origin (scheme://host:port).
-
send"unauthorized" | "always" (необязательно)Этот параметр применяется только к запросам, отправляемым соответствующим APIRequestContext, и не влияет на запросы браузера.
'always'— заголовокAuthorizationс учётными данными для базовой аутентификации отправляется с каждым запросом API.'unauthorized— учётные данные отправляются только при получении ответа 401 (Unauthorized) с заголовкомWWW-Authenticate. По умолчанию —'unauthorized'.
-
ignoreHTTPSErrors
Игнорировать ли ошибки HTTPS при отправке сетевых запросов. По умолчанию — false.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
ignoreHTTPSErrors: true,
},
}); Тип
isMobile
Учитывается ли тег meta viewport и включены ли сенсорные события. 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, а также на правила форматирования чисел и дат. По умолчанию — en-US. Подробнее об эмуляции см. в нашем руководстве по эмуляции.
Использование
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',
},
},
}); Тип
-
Object
-
serverstringПрокси для всех запросов. Поддерживаются прокси HTTP и SOCKS, например
http://myproxy.com:3128илиsocks5://myproxy.com:3128. Краткая формаmyproxy.com:3128считается прокси HTTP. -
bypassstring (необязательно)Необязательный список доменов через запятую, для которых прокси не используется, например
".com, chromium.org, .domain.com". -
usernamestring (необязательно)Необязательное имя пользователя, если прокси HTTP требует аутентификации.
-
passwordstring (необязательно)Необязательный пароль, если прокси HTTP требует аутентификации.
-
reducedMotion
Эмулирует медиахарактеристику 'prefers-reduced-motion'; поддерживаются значения 'reduce', 'no-preference'. Подробнее см. в описании page.emulateMedia(). Передача null сбрасывает эмуляцию к системным настройкам. По умолчанию — 'no-preference'.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
reducedMotion: 'reduce',
},
}); Тип
- null | "reduce" | "no-preference"
screenshot
Автоматически ли делать снимок экрана после каждого теста. По умолчанию — '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"Режим автоматического создания снимков экрана.
-
fullPageboolean (необязательно)Если значение равно true, делается снимок всей прокручиваемой страницы, а не только видимой в данный момент области просмотра. Значение по умолчанию —
false. -
omitBackgroundboolean (необязательно)Скрывает белый фон по умолчанию и позволяет делать снимки экрана с прозрачностью. Не применяется к изображениям
jpeg. Значение по умолчанию —false.
-
serviceWorkers
Разрешить ли сайтам регистрировать сервис-воркеры. По умолчанию — 'allow'.
-
'allow': можно регистрировать сервис-воркеры. -
'block': Playwright заблокирует регистрацию всех сервис-воркеров.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
serviceWorkers: 'allow'
},
}); Тип
- "allow" | "block"
storageState
Подробнее о состоянии хранилища и аутентификации.
Заполняет контекст заданным состоянием хранилища. Этот параметр можно использовать для инициализации контекста информацией о входе в систему, полученной с помощью browserContext.storageState().
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
storageState: 'storage-state.json',
},
}); Тип
-
string | Object
-
-
namestring -
valuestring -
domainstringДомен и путь обязательны. Чтобы cookie применялась ко всем поддоменам, добавьте точку перед доменом, например: ".example.com"
-
pathstringДомен и путь обязательны
-
expiresnumberВремя Unix в секундах.
-
httpOnlyboolean -
secureboolean -
sameSite"Strict" | "Lax" | "None"Флаг sameSite
Файлы cookie, которые нужно установить для контекста
-
-
Подробности
Если состояние хранилища задано в конфигурации, его можно сбросить для файла:
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 }) => {
// ...
}); testIdAttribute
Пользовательский атрибут, используемый в page.getByTestId(). По умолчанию используется data-testid. Чтобы находить элементы по любому из нескольких атрибутов, передайте их списком, разделённым запятыми.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
testIdAttribute: 'pw-test-id',
},
}); Несколько атрибутов:
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
testIdAttribute: 'data-pw,data-ti',
},
}); timezoneId
Изменяет часовой пояс контекста. Список поддерживаемых идентификаторов часовых поясов см. в файле metaZones.txt из ICU. По умолчанию используется системный часовой пояс.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
timezoneId: 'Europe/Rome',
},
}); Тип
trace
Записывать ли трассировку для каждого теста. По умолчанию — 'off'. Первый запуск теста считается «первым запуском», а последующие запуски, вызванные повторными попытками, — «повторными попытками».
-
'off': Не записывать трассировку. -
'on': Записывать и сохранять трассировку для каждого запуска. -
'on-first-retry': Записывать и сохранять трассировку только для первой повторной попытки теста. -
'on-all-retries': Записывать и сохранять трассировку для каждой повторной попытки. -
'retain-on-failure': Записывать трассировку для каждого запуска, но сохранять её только для завершившихся сбоем запусков. Трассировка неудачного запуска сохраняется, даже если последующая повторная попытка завершается успешно. -
'retain-on-first-failure': Записывать трассировку только для первого запуска теста (не для повторных попыток) и сохранять её, только если этот запуск завершился сбоем. -
'retain-on-failure-and-retries': Записывать трассировку для каждого запуска и сохранять её для всех запусков, завершившихся сбоем или являющихся повторными попытками.
См. режимы трассировки для сравнения того, что записывает и сохраняет каждый режим.
Для более точной настройки передайте объект, задающий 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" | "retain-on-failure-and-retries"
-
mode"off" | "on" | "retain-on-failure" | "on-first-retry" | "on-all-retries" | "retain-on-first-failure" | "retain-on-failure-and-retries"Режим записи трассировки.
-
attachmentsboolean (необязательно)Включать ли вложения теста. По умолчанию — true. Необязательно.
-
screenshotsboolean (необязательно)Делать ли снимки экрана во время записи трассировки. Снимки экрана используются для создания предварительного просмотра временной шкалы. По умолчанию — true. Необязательно.
-
snapshotsboolean | Object (необязательно)-
domboolean (необязательно)Сохранять снимок DOM при каждом действии и записывать сетевую активность. Необязательно.
-
ariaboolean (необязательно)Сохранять снимок aria страницы при каждом действии. Необязательно.
-
screenboolean (необязательно)Делать снимок экрана страницы при каждом действии. Необязательно.
Какие снимки сохранять при каждом действии. Передача
trueявляется сокращённой записью для{ dom: true }. По умолчанию — true. Необязательно. -
-
sourcesboolean (необязательно)Включать ли исходные файлы для действий трассировки. По умолчанию — true. Необязательно.
-
userAgent
Пользовательский агент, используемый в этом контексте.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
userAgent: 'some custom ua',
},
}); Тип
video
Записывать ли видео для каждого теста. По умолчанию — 'off'. Первый запуск теста считается «первым запуском», а последующие запуски, вызванные повторными попытками, — «повторными попытками».
-
'off': Не записывать видео. -
'on': Записывать и сохранять видео для каждого запуска. -
'on-first-retry': Записывать и сохранять видео только для первой повторной попытки теста. -
'on-all-retries': Записывать и сохранять видео для каждой повторной попытки. -
'retain-on-failure': Записывать видео для каждого запуска, но сохранять его только для завершившихся сбоем запусков. Видео неудачного запуска сохраняется, даже если последующая повторная попытка завершается успешно. -
'retain-on-first-failure': Записывать видео только для первого запуска теста (не для повторных попыток) и сохранять его, только если этот запуск завершился сбоем. -
'retain-on-failure-and-retries': Записывать видео для каждого запуска и сохранять его для всех запусков, завершившихся сбоем или являющихся повторными попытками.
См. режимы записи видео для сравнения того, что записывает и сохраняет каждый режим.
Чтобы задать размер видео, передайте объект со свойствами mode и size. Если размер видео не задан, он будет соответствовать testOptions.viewport, уменьшенному до размеров не более 800x800. Если параметр viewport не задан явно, размер видео по умолчанию составляет 800x450. Изображение каждой страницы при необходимости будет уменьшено до указанного размера.
Чтобы добавлять к действиям аннотации в видео, передайте show с подопциями action и/или test. Параметр action задаёт визуальные выделения взаимодействующих элементов и принимает необязательное значение delay в миллисекундах (по умолчанию — 500). Параметр test задаёт, какая информация о тесте отображается в виде наложенного статуса.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
video: 'on-first-retry',
},
}); Подробнее о записи видео.
Тип
-
Object | "off" | "on" | "retain-on-failure" | "on-first-retry" | "on-all-retries" | "retain-on-first-failure" | "retain-on-failure-and-retries"
-
mode"off" | "on" | "retain-on-failure" | "on-first-retry" | "on-all-retries" | "retain-on-first-failure" | "retain-on-failure-and-retries"Режим записи видео.
-
sizeObject (необязательно)Размер записываемого видео. Необязательно.
-
showObject (необязательно)-
actionsObject (необязательно)-
durationnumber (необязательно)Длительность отображения каждой аннотации в миллисекундах. По умолчанию —
500. -
position"top-left" | "top" | "top-right" | "bottom-left" | "bottom" | "bottom-right" (необязательно)Положение наложенного заголовка действия. По умолчанию —
"top-right". -
fontSizenumber (необязательно)Размер шрифта заголовка действия в пикселях. По умолчанию —
24. -
cursor"none" | "pointer" (необязательно)Оформление курсора для действий с указателем.
"pointer"(значение по умолчанию) отображает указатель мыши, который перемещается от точки предыдущего действия к точке следующего."none"отключает оформление курсора.
Управляет визуальными аннотациями взаимодействующих элементов.
-
-
testObject (необязательно)-
level"file" | "test" | "step" (необязательно)Уровень детализации сведений о текущем тесте.
-
position"top-left" | "top" | "top-right" | "bottom-left" | "bottom" | "bottom-right" (необязательно)Положение наложенной информации о тесте. По умолчанию —
"top-left". -
fontSizenumber (необязательно)Размер шрифта сведений о тесте в пикселях. По умолчанию —
14.
Управляет сведениями о тесте, отображаемыми в видео в виде наложенного статуса.
-
Если параметр задан, к видео добавляются визуальные аннотации со сведениями о тесте и выделением действий.
-
-
viewport
Использует единый размер области просмотра для каждой страницы. По умолчанию — 1280x720. Используйте null, чтобы отключить эмуляцию единого размера области просмотра. Подробнее об эмуляции области просмотра.
примечаниеЗначение
nullотменяет предустановки по умолчанию и привязывает область просмотра к размеру окна хоста, заданному операционной системой. Это делает выполнение тестов недетерминированным.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
viewport: { width: 100, height: 100 },
},
}); Тип
Устаревшее
reuseContext
Не рекомендуетсяЭтот параметр снижает изоляцию тестов ради повышения скорости и предназначен для компонентных тестов, работающих с галереей историй. Для сквозных тестов не задавайте его: новый контекст браузера для каждого теста — одна из ключевых гарантий Playwright Test.
Экспериментально. Если задано значение true, все тесты в рабочем процессе выполняются в одном контексте браузера, который используется повторно, вместо создания нового контекста для каждого теста. По умолчанию — false.
Между тестами Playwright сбрасывает состояние, с которым обычно взаимодействуют компонентные тесты: очищает файлы cookie, кэш, local storage и IndexedDB посещённых источников, отменяет регистрацию сервис-воркеров, закрывает дополнительные страницы, удаляет маршруты, привязки и скрипты инициализации, а также повторно применяет настроенное состояние хранилища, параметры области просмотра и эмуляции.
Этот сброс выполняется по возможности, но не гарантирует изоляцию. Состояние, которое не сбрасывается:
- Разрешения, предоставленные во время теста с помощью browserContext.grantPermissions().
- Изменения во время выполнения, внесённые с помощью browserContext.setGeolocation(), browserContext.setOffline() и browserContext.setExtraHTTPHeaders().
- История браузера,
window.nameи любое состояние, общее для всего процесса браузера.
Дополнительные ограничения:
- Параметр игнорируется, если включена запись testOptions.video.
- Между последовательными тестами могут различаться только некоторые параметры контекста:
colorScheme,forcedColors,reducedMotion,contrast,screen,userAgent,viewportиtestIdAttribute. Изменение любого другого параметра в test.use(), напримерlocaleилиstorageState, незаметно приводит к созданию нового контекста и сводит на нет выигрыш в скорости. - Не используйте этот параметр вместе с testOptions.connectOptions, направляющим несколько рабочих процессов к общему браузеру: рабочие процессы будут конкурировать за единственный повторно используемый контекст.
-
recordHarв testOptions.contextOptions не поддерживается, поэтому файл HAR не создаётся.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
projects: [
{
name: 'components',
testDir: './tests/components',
use: { reuseContext: true },
},
],
}); Тип
© 2026 Microsoft
Licensed under the Apache License, Version 2.0.
https://playwright.dev/docs/api/class-testoptions