Spec-Zone.ru › Playwright

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,
  },
});

Тип

  • boolean

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,
  },
});

Подробнее о различных таймаутах.

Тип

  • number

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',
  },
});

Тип

  • string

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,
  }
});

Тип

  • boolean

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'
      },
    },
  ]
});

Тип

  • string

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>
    • origin string

      Точная область происхождения, для которой сертификат действителен. Область происхождения включает https протокол, имя хоста и необязательно порт.

    • certPath string (необязательно)

      Путь к файлу с сертификатом в формате PEM.

    • cert Buffer (необязательно)

      Прямое значение сертификата в формате PEM.

    • keyPath string (необязательно)

      Путь к файлу с закрытым ключом в формате PEM.

    • key Buffer (необязательно)

      Прямое значение закрытого ключа в формате PEM.

    • pfxPath string (необязательно)

      Путь к файлу с закрытым ключом и цепочкой сертификатов в формате PFX или PKCS12.

    • pfx Buffer (необязательно)

      Прямое значение закрытого ключа и цепочки сертификатов в формате PFX или PKCS12.

    • passphrase string (необязательно)

      Пароль для закрытого ключа (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
    • wsEndpoint string

      Конечная точка веб-сокет подключения браузера.

    • headers void | Object<string, string> (необязательно)

      Дополнительные HTTP-заголовки, которые будут отправлены с запросом соединения веб-сокета. Необязательно.

    • timeout number (необязательно)

      Таймаут в миллисекундах для установления соединения. Необязательно, по умолчанию таймаут отсутствует.

    • exposeNetwork string (необязательно)

      Параметр для экспонирования сетевого доступа подключенного клиента браузеру, к которому происходит подключение. Подробнее см. browserType.connect().

contextOptions​

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

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

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

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

Тип

  • Object

deviceScaleFactor​

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

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

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

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

Тип

  • number

extraHTTPHeaders​

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

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

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

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

Тип

  • Object<string, string>

geolocation​

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

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 (необязательно)

      Значение точности (неотрицательное). По умолчанию 0.

hasTouch​

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

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

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

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

Тип

  • boolean

headless​

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

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

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

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

Тип

  • boolean

httpCredentials​

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

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

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

export default defineConfig({
  use: {
    httpCredentials: {
      username: 'user',
      password: 'pass',
    },
  },
});

Тип

  • Object
    • username string

    • password string

    • origin string (необязательно)

      Ограничить отправку учетных данных 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,
  },
});

Тип

  • boolean

isMobile​

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

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

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

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

Тип

  • boolean

javaScriptEnabled​

Включить JavaScript в контексте. По умолчанию true. Подробнее о отключении JavaScript.

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

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

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

Тип

  • boolean

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 массив<объект>
      • origin строка

      • localStorage массив<объект>

        • name строка

        • value строка

      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',
  },
});

Подробнее о записи видео.

Тип

  • объект | "выкл" | "вкл" | "сохранять-при-ошибке" | "при-первом-повторном-выполнении"
    • mode "выкл" | "вкл" | "сохранять-при-ошибке" | "при-первом-повторном-выполнении"

      Режим записи видео.

    • size объект (необязательно)

      • width число

      • height число

      Размер записываемого видео. Необязательно.

Область просмотра​

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

примечание

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

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

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

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

Тип

  • null | Object
    • width число

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

    • height число

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

© 2024 Microsoft
Licensed under the Apache License, Version 2.0.
https://playwright.dev/docs/api/class-testoptions

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API