Skip to main content

TestOptions

Playwright Test предоставляет множество опций для настройки тестовой среды, [Browser], [BrowserContext] и других.

Эти опции обычно указываются в файле конфигурации через testConfig.use и testProject.use.

playwright.config.ts
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
headless: false,
viewport: { width: 1280, height: 720 },
ignoreHTTPSErrors: true,
video: 'on-first-retry',
},
});

Кроме того, с помощью test.use() вы можете переопределить некоторые опции для файла.

example.spec.ts
import { test, expect } from '@playwright/test';

// Запуск тестов в этом файле с портретным видом.
test.use({ viewport: { width: 600, height: 900 } });

test('my portrait test', async ({ page }) => {
// ...
});

Свойства

acceptDownloads

Добавлено в: v1.10 testOptions.acceptDownloads

Автоматически загружать все вложения. По умолчанию true, что означает, что все загрузки принимаются.

Использование

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
use: {
acceptDownloads: false,
},
});

Тип

  • [boolean]

actionTimeout

Добавлено в: v1.10 testOptions.actionTimeout

Тайм-аут по умолчанию для каждого действия Playwright в миллисекундах, по умолчанию 0 (без тайм-аута).

Это тайм-аут по умолчанию для всех действий Playwright, такой же, как настроен через page.setDefaultTimeout().

Использование

import { defineConfig, devices } from '@playwright/test';

export default defineConfig({
use: {
/* Максимальное время, которое может занять каждое действие, такое как `click()`. По умолчанию 0 (без ограничений). */
actionTimeout: 0,
},
});

Узнайте больше о различных тайм-аутах.

Тип

  • [number]

baseURL

Добавлено в: v1.10 testOptions.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: {
/* Базовый URL для использования в действиях, таких как `await page.goto('/')`. */
baseURL: 'http://localhost:3000',
},
});

Тип

  • [string]

browserName

Добавлено в: v1.10 testOptions.browserName

Имя браузера, в котором выполняются тесты. По умолчанию 'chromium'. В большинстве случаев следует устанавливать browserName в вашем [TestConfig]:

Использование

playwright.config.ts
import { defineConfig, devices } from '@playwright/test';

export default defineConfig({
use: {
browserName: 'firefox',
},
});

Тип

  • "chromium" | "firefox" | "webkit"

bypassCSP

Добавлено в: v1.10 testOptions.bypassCSP

Переключает обход политики безопасности содержимого страницы. По умолчанию false.

Использование

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
use: {
bypassCSP: true,
}
});

Тип

  • [boolean]

channel

Добавлено в: v1.10 testOptions.channel

Канал распространения браузера.

Используйте "chromium", чтобы включить новый режим без заголовка.

Используйте "chrome", "chrome-beta", "chrome-dev", "chrome-canary", "msedge", "msedge-beta", "msedge-dev" или "msedge-canary", чтобы использовать брендированные Google Chrome и Microsoft Edge.

Использование

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
projects: [
{
name: 'Microsoft Edge',
use: {
...devices['Desktop Edge'],
channel: 'msedge'
},
},
]
});

Тип

  • [string]

clientCertificates

Добавлено в: 1.46 testOptions.clientCertificates

Аутентификация клиента TLS позволяет серверу запросить клиентский сертификат и проверить его.

Использование

playwright.config.ts
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 должно быть предоставлено с точным совпадением с источником запроса, для которого сертификат действителен.

note

При использовании WebKit на macOS доступ к localhost не будет использовать клиентские сертификаты. Вы можете сделать это, заменив localhost на local.playwright.


colorScheme

Добавлено в: v1.10 testOptions.colorScheme

Эмулирует медиа-функцию prefers-colors-scheme, поддерживаемые значения: 'light' и 'dark'. Подробнее см. page.emulateMedia(). Передача null сбрасывает эмуляцию на системные настройки по умолчанию. По умолчанию 'light'.

Использование

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
use: {
colorScheme: 'dark',
},
});

Тип

  • [null] | "light" | "dark" | "no-preference"

connectOptions

Добавлено в: v1.10 testOptions.connectOptions

Использование

playwright.config.ts
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 testOptions.contextOptions

Опции, используемые для создания контекста, как передано в browser.newContext(). Конкретные опции, такие как testOptions.viewport, имеют приоритет над этим.

Использование

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
use: {
contextOptions: {
reducedMotion: 'reduce',
},
},
});

Тип

  • [Object]

deviceScaleFactor

Добавлено в: v1.10 testOptions.deviceScaleFactor

Укажите коэффициент масштабирования устройства (можно рассматривать как dpr). По умолчанию 1. Узнайте больше о эмуляции устройств с коэффициентом масштабирования устройства.

Использование

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
use: {
viewport: { width: 2560, height: 1440 },
deviceScaleFactor: 2,
},
});

Тип

  • [number]

extraHTTPHeaders

Добавлено в: v1.10 testOptions.extraHTTPHeaders

Объект, содержащий дополнительные HTTP-заголовки для отправки с каждым запросом. По умолчанию нет.

Использование

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
use: {
extraHTTPHeaders: {
'X-My-Header': 'value',
},
},
});

Тип

  • [Object]<[string], [string]>

geolocation

Добавлено в: v1.10 testOptions.geolocation

Использование

playwright.config.ts
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 testOptions.hasTouch

Указывает, поддерживает ли видовая область сенсорные события. По умолчанию false. Узнайте больше о мобильной эмуляции.

Использование

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
use: {
hasTouch: true
},
});

Тип

  • [boolean]

headless

Добавлено в: v1.10 testOptions.headless

Запускать ли браузер в режиме без заголовка. Подробнее для Chromium и Firefox. По умолчанию true, если только опция devtools не установлена в true.

Использование

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
use: {
headless: false
},
});

Тип

  • [boolean]

httpCredentials

Добавлено в: v1.10 testOptions.httpCredentials

Учетные данные для HTTP-аутентификации. Если источник не указан, имя пользователя и пароль отправляются на любые серверы при неавторизованных ответах.

Использование

playwright.config.ts
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 testOptions.ignoreHTTPSErrors

Игнорировать ли ошибки HTTPS при отправке сетевых запросов. По умолчанию false.

Использование

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
use: {
ignoreHTTPSErrors: true,
},
});

Тип

  • [boolean]

isMobile

Добавлено в: v1.10 testOptions.isMobile

Учитывается ли тег meta viewport и включены ли сенсорные события. isMobile является частью устройства, поэтому вам не нужно устанавливать его вручную. По умолчанию false и не поддерживается в Firefox. Узнайте больше о мобильной эмуляции.

Использование

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
use: {
isMobile: false,
},
});

Тип

  • [boolean]

javaScriptEnabled

Добавлено в: v1.10 testOptions.javaScriptEnabled

Включать ли JavaScript в контексте. По умолчанию true. Узнайте больше о отключении JavaScript.

Использование

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
use: {
javaScriptEnabled: false,
},
});

Тип

  • [boolean]

launchOptions

Добавлено в: v1.10 testOptions.launchOptions

Опции, используемые для запуска браузера, как передано в browserType.launch(). Конкретные опции testOptions.headless и testOptions.channel имеют приоритет над этим.

warning

Используйте пользовательские аргументы браузера на свой страх и риск, так как некоторые из них могут нарушить функциональность Playwright.

Использование

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
projects: [
{
name: 'chromium',
use: {
...devices['Desktop Chrome'],
launchOptions: {
args: ['--start-maximized']
}
}
}
]
});

Тип

  • [Object]

locale

Добавлено в: v1.10 testOptions.locale

Укажите локаль пользователя, например en-GB, de-DE и т.д. Локаль повлияет на значение navigator.language, значение заголовка запроса Accept-Language, а также на правила форматирования чисел и дат. По умолчанию en-US. Узнайте больше об эмуляции в нашем руководстве по эмуляции.

Использование

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
use: {
locale: 'it-IT',
},
});

Тип

  • [string]

navigationTimeout

Добавлено в: v1.10 testOptions.navigationTimeout

Тайм-аут для каждого действия навигации в миллисекундах. По умолчанию 0 (без тайм-аута).

Это тайм-аут навигации по умолчанию, такой же, как настроен через page.setDefaultNavigationTimeout().

Использование

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
use: {
navigationTimeout: 3000,
},
});

Узнайте больше о различных тайм-аутах.

Тип

  • [number]

offline

Добавлено в: v1.10 testOptions.offline

Эмулировать ли отключение сети. По умолчанию false. Узнайте больше о эмуляции сети.

Использование

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
use: {
offline: true
},
});

Тип

  • [boolean]

permissions

Добавлено в: v1.10 testOptions.permissions

Список разрешений, которые нужно предоставить всем страницам в этом контексте. Подробнее см. browserContext.grantPermissions(). По умолчанию нет.

Использование

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
use: {
permissions: ['notifications'],
},
});

Тип

  • [Array]<[string]>

proxy

Добавлено в: v1.10 testOptions.proxy

Настройки сетевого прокси.

Использование

playwright.config.ts
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 testOptions.screenshot

Автоматически ли захватывать скриншот после каждого теста. По умолчанию 'off'.

  • 'off': Не захватывать скриншоты.
  • 'on': Захватывать скриншот после каждого теста.
  • 'only-on-failure': Захватывать скриншот после каждого сбоя теста.
  • 'on-first-failure': Захватывать скриншот после первого сбоя каждого теста.

Использование

playwright.config.ts
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 testOptions.serviceWorkers

Разрешать ли сайтам регистрировать сервис-воркеры. По умолчанию 'allow'.

  • 'allow': Сервис-воркеры могут быть зарегистрированы.
  • 'block': Playwright будет блокировать всю регистрацию сервис-воркеров.

Использование

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
use: {
serviceWorkers: 'allow'
},
});

Тип

  • "allow" | "block"

storageState

Добавлено в: v1.10 testOptions.storageState

Узнайте больше о состоянии хранилища и аутентификации.

Заполняет контекст заданным состоянием хранилища. Эта опция может быть использована для инициализации контекста с информацией о входе, полученной через browserContext.storageState().

Использование

playwright.config.ts
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

      Cookies для установки в контексте
    • origins [Array]<[Object]>
      • origin [string]

      • localStorage [Array]<[Object]>

        • name [string]

        • value [string]

        localStorage для установки в контексте

Детали

Когда состояние хранилища настроено в конфигурации, возможно сбросить состояние хранилища для файла:

not-signed-in.spec.ts
import { test } from '@playwright/test';

// Сброс состояния хранилища для этого файла, чтобы избежать аутентификации
test.use({ storageState: { cookies: [], origins: [] } });

test('not signed in test', async ({ page }) => {
// ...
});

testIdAttribute

Добавлено в: v1.27 testOptions.testIdAttribute

Пользовательский атрибут для использования в page.getByTestId(). По умолчанию используется data-testid.

Использование

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
use: {
testIdAttribute: 'pw-test-id',
},
});

timezoneId

Добавлено в: v1.10 testOptions.timezoneId

Изменяет часовой пояс контекста. См. ICU's metaZones.txt для списка поддерживаемых идентификаторов часовых поясов. По умолчанию используется системный часовой пояс.

Использование

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
use: {
timezoneId: 'Europe/Rome',
},
});

Тип

  • [string]

trace

Добавлено в: v1.10 testOptions.trace

Записывать ли трассировку для каждого теста. По умолчанию 'off'.

  • 'off': Не записывать трассировку.
  • 'on': Записывать трассировку для каждого теста.
  • 'on-first-retry': Записывать трассировку только при первой повторной попытке теста.
  • 'on-all-retries': Записывать трассировку только при повторных попытках теста.
  • 'retain-on-failure': Записывать трассировку для каждого теста. При успешном выполнении теста удалить записанную трассировку.
  • 'retain-on-first-failure': Записывать трассировку для первого запуска каждого теста, но не для повторных попыток. При успешном выполнении теста удалить записанную трассировку.

Для более точного контроля передайте объект, который указывает mode и функции трассировки для включения.

Использование

playwright.config.ts
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 testOptions.userAgent

Конкретный пользовательский агент для использования в этом контексте.

Использование

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
use: {
userAgent: 'some custom ua',
},
});

Тип

  • [string]

video

Добавлено в: v1.10 testOptions.video

Записывать ли видео для каждого теста. По умолчанию 'off'.

  • 'off': Не записывать видео.
  • 'on': Записывать видео для каждого теста.
  • 'retain-on-failure': Записывать видео для каждого теста, но удалять все видео успешных тестов.
  • 'on-first-retry': Записывать видео только при первой повторной попытке теста.

Чтобы контролировать размер видео, передайте объект с свойствами mode и size. Если размер видео не указан, он будет равен testOptions.viewport, уменьшенному для соответствия 800x800. Если viewport не настроен явно, размер видео по умолчанию составляет 800x450. Фактическое изображение каждой страницы будет уменьшено, если необходимо, чтобы соответствовать указанному размеру.

Использование

playwright.config.ts
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 testOptions.viewport

Эмулирует постоянную видовую область для каждой страницы. По умолчанию используется видовая область 1280x720. Используйте null, чтобы отключить эмуляцию постоянной видовой области. Узнайте больше о эмуляции видовой области.

note

Значение null исключает использование предустановок по умолчанию, делает видовую область зависимой от размера окна хоста, определяемого операционной системой. Это делает выполнение тестов недетерминированным.

Использование

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
use: {
viewport: { width: 100, height: 100 },
},
});

Тип

  • [null] | [Object]
    • width [number]

      ширина страницы в пикселях.

    • height [number]

      высота страницы в пикселях.