Браузеры
Введение
Каждая версия Playwright нуждается в определённых версиях бинарных файлов браузера для работы. Вам необходимо использовать Playwright CLI для установки этих браузеров.
С каждым релизом Playwright обновляет поддерживаемые версии браузеров, чтобы последняя версия Playwright поддерживала самые последние браузеры в любой момент. Это означает, что каждый раз при обновлении Playwright, возможно, потребуется повторно выполнить команду install CLI.
Установка браузеров
Playwright может устанавливать поддерживаемые браузеры. Выполнение команды без аргументов установит браузеры по умолчанию.
npx playwright install
Также можно установить определённые браузеры, передав аргумент:
npx playwright install webkit
Просмотреть все поддерживаемые браузеры:
npx playwright install --help
Установка системных зависимостей
Системные зависимости могут быть установлены автоматически. Это полезно для сред CI.
npx playwright install-deps
Также можно установить зависимости для одного браузера, передав его в качестве аргумента:
npx playwright install-deps chromium
Также можно объединить install-deps с install, чтобы браузеры и зависимости ОС устанавливались одной командой.
npx playwright install --with-deps chromium
См. требования к системе для официально поддерживаемых операционных систем.
Регулярно обновлять Playwright
Благодаря поддержанию версии Playwright в актуальном состоянии, вы сможете использовать новые возможности и тестировать своё приложение на последних версиях браузеров, а также обнаруживать ошибки до их публикации в последних версиях браузеров.
# Update playwright npm install -D @playwright/test@latest # Install new browsers npx playwright install
Проверьте заметки о выпуске, чтобы узнать о последней версии и внесённых изменениях.
# See what version of Playwright you have by running the following command npx playwright --version
Настройка браузеров
Playwright может запускать тесты в браузерах Chromium, WebKit и Firefox, а также в браузерах, таких как Google Chrome и Microsoft Edge. Он также может работать на эмулированных планшетных и мобильных устройствах. См. реестр параметров устройств для получения полного списка выбранных настольных компьютеров, планшетов и мобильных устройств.
Запуск тестов в разных браузерах
Playwright может запускать ваши тесты в нескольких браузерах и конфигурациях путём настройки проектов в конфигурации. Вы также можете добавить различные параметры для каждого проекта.
import { defineConfig, devices } from '@playwright/test';
export default defineConfig({
projects: [
/* Test against desktop browsers */
{
name: 'chromium',
use: { ...devices['Desktop Chrome'] },
},
{
name: 'firefox',
use: { ...devices['Desktop Firefox'] },
},
{
name: 'webkit',
use: { ...devices['Desktop Safari'] },
},
/* Test against mobile viewports. */
{
name: 'Mobile Chrome',
use: { ...devices['Pixel 5'] },
},
{
name: 'Mobile Safari',
use: { ...devices['iPhone 12'] },
},
/* Test against branded browsers. */
{
name: 'Google Chrome',
use: { ...devices['Desktop Chrome'], channel: 'chrome' }, // or 'chrome-beta'
},
{
name: 'Microsoft Edge',
use: { ...devices['Desktop Edge'], channel: 'msedge' }, // or 'msedge-dev'
},
],
}); Playwright по умолчанию выполнит все проекты.
npx playwright test Running 7 tests using 5 workers ✓ [chromium] › example.spec.ts:3:1 › basic test (2s) ✓ [firefox] › example.spec.ts:3:1 › basic test (2s) ✓ [webkit] › example.spec.ts:3:1 › basic test (2s) ✓ [Mobile Chrome] › example.spec.ts:3:1 › basic test (2s) ✓ [Mobile Safari] › example.spec.ts:3:1 › basic test (2s) ✓ [Google Chrome] › example.spec.ts:3:1 › basic test (2s) ✓ [Microsoft Edge] › example.spec.ts:3:1 › basic test (2s)
Используйте опцию командной строки --project для запуска одного проекта.
npx playwright test --project=firefox Running 1 test using 1 worker ✓ [firefox] › example.spec.ts:3:1 › basic test (2s)
С расширением VS Code вы можете запускать тесты в различных браузерах, установив флажок рядом с именем браузера в боковой панели Playwright. Эти имена определены в вашем файле конфигурации Playwright в разделе проектов. По умолчанию при установке Playwright предоставляется 3 проекта: Chromium, Firefox и WebKit. Первый проект выбран по умолчанию.
Чтобы запустить тесты для нескольких проектов (браузеров), установите флажки рядом с именем проекта.
Chromium
Для Google Chrome, Microsoft Edge и других браузеров на основе Chromium Playwright по умолчанию использует открытые исходные коды сборки Chromium. Поскольку проект Chromium опережает брендированные браузеры, когда в мире используется Google Chrome N, Playwright уже поддерживает Chromium N+1, который будет выпущен в Google Chrome и Microsoft Edge на несколько недель позже.
Playwright поставляет регулярную сборку Chromium для работы с графическим интерфейсом и отдельную оболочку Chromium headless для режима без графического интерфейса. См. проблему #33566 для получения подробностей.
Оптимизация размера загрузки на CI
Если вы запускаете тесты только в режиме без графического интерфейса, например, на CI, вы можете избежать загрузки обычной версии Chromium, передав --only-shell во время установки.
# only running tests headlessly npx playwright install --with-deps --only-shell
Подключение к новому режиму без графического интерфейса
Вы можете подключиться к новому режиму без графического интерфейса, используя канал 'chromium'. Как указывает официальная документация Chrome:
Новый режим без графического интерфейса, с другой стороны, — это настоящий браузер Chrome, поэтому он более достоверен, надёжен и предоставляет больше функций. Это делает его более подходящим для тестирования веб-приложений с высокой точностью или тестирования расширений браузера.
См. проблему #33566 для получения подробностей.
import { defineConfig, devices } from '@playwright/test';
export default defineConfig({
projects: [
{
name: 'chromium',
use: { ...devices['Desktop Chrome'], channel: 'chromium' },
},
],
}); Google Chrome & Microsoft Edge
Хотя Playwright может загрузить и использовать последнюю сборку Chromium, он может работать с брендированными браузерами Google Chrome и Microsoft Edge, доступными на компьютере (обратите внимание, что Playwright не устанавливает их по умолчанию). В частности, текущая версия Playwright будет поддерживать каналы Stable и Beta этих браузеров.
Доступные каналы — chrome, msedge, chrome-beta, msedge-beta или msedge-dev.
предупреждениеОпределённые корпоративные политики браузеров могут повлиять на способность Playwright запускать и контролировать Google Chrome и Microsoft Edge. Работа в среде с политиками браузера выходит за рамки задач проекта Playwright.
предупреждениеGoogle Chrome и Microsoft Edge перешли на новую реализацию режима без графического интерфейса, которая ближе к обычному режиму с графическим интерфейсом. Это отличается от оболочки Chromium headless, которая используется в Playwright по умолчанию при работе в режиме без графического интерфейса, поэтому ожидайте различного поведения в некоторых случаях. См. проблему #33566 для получения подробностей.
import { defineConfig, devices } from '@playwright/test';
export default defineConfig({
projects: [
/* Test against branded browsers. */
{
name: 'Google Chrome',
use: { ...devices['Desktop Chrome'], channel: 'chrome' }, // or 'chrome-beta'
},
{
name: 'Microsoft Edge',
use: { ...devices['Desktop Edge'], channel: 'msedge' }, // or "msedge-beta" or 'msedge-dev'
},
],
}); Установка Google Chrome и Microsoft Edge
Если Google Chrome или Microsoft Edge недоступны на вашем компьютере, вы можете установить их с помощью инструмента командной строки Playwright:
npx playwright install msedge
предупреждениеУстановка Google Chrome или Microsoft Edge будет установлена по умолчанию в глобальной папке вашей операционной системы, перезаписав вашу текущую установку браузера.
Запустите с опцией --help , чтобы увидеть полный список браузеров, которые можно установить.
Когда использовать Google Chrome & Microsoft Edge, а когда нет?
Значения по умолчанию
Использование конфигурации Playwright по умолчанию с последней версией Chromium — хороший выбор в большинстве случаев. Поскольку Playwright опережает каналы Stable для браузеров, это даёт уверенность в том, что будущие релизы Google Chrome или Microsoft Edge не повредят ваш сайт. Вы обнаруживаете ошибки на ранней стадии и имеете достаточно времени для их исправления до официального обновления Chrome.
Регрессионное тестирование
Однако политики тестирования часто требуют выполнения регрессионного тестирования на основе текущих публично доступных браузеров. В этом случае вы можете подключиться к одному из стабильных каналов, "chrome" или "msedge".
Кодеки мультимедиа
Ещё одна причина для тестирования с помощью официальных бинарных файлов — тестирование функциональности, связанной с кодеками мультимедиа. В Chromium могут отсутствовать все кодеки, которые содержатся в Google Chrome или Microsoft Edge, из-за различных лицензионных соображений и соглашений. Если ваш сайт зависит от этого типа кодеков (что случается редко), вам также следует использовать официальный канал.
Корпоративная политика
Google Chrome и Microsoft Edge учитывают корпоративные политики, которые включают ограничения возможностей, сетевые прокси, обязательные расширения, которые препятствуют тестированию. Поэтому, если вы являетесь частью организации, использующей такие политики, проще использовать собранный Chromium для локального тестирования, вы по-прежнему можете подключиться к стабильным каналам на ботах, которые, как правило, свободны от таких ограничений.
Firefox
Версия Firefox Playwright соответствует последней стабильной сборке Firefox. Playwright не работает с брендированной версией Firefox, так как она зависит от патчей.
Обратите внимание, что доступность определенных функций, которые сильно зависят от базовой платформы, может различаться между операционными системами. Например, доступные кодеки медиа существенно различаются между Linux, macOS и Windows.
WebKit
WebKit Playwright извлечен из последних источников основного ветвления WebKit, часто до внедрения этих обновлений в Apple Safari и другие браузеры на основе WebKit. Это даёт много времени на реакцию на потенциальные проблемы обновления браузера. Playwright не работает с брендированной версией Safari, так как полагается на исправления. Вместо этого вы можете протестировать с помощью последней сборки WebKit.
Обратите внимание, что доступность определенных функций, которые сильно зависят от базовой платформы, может различаться между операционными системами. Например, доступные кодеки медиа существенно различаются между Linux, macOS и Windows. Хотя запуск WebKit на Linux CI обычно является наиболее экономичным вариантом, для максимально близкого к Safari опыта вы должны запустить WebKit на mac, например, если вы выполняете воспроизведение видео.
Установка за брандмауэром или прокси-сервером
По умолчанию Playwright загружает браузеры с CDN Майкрософт.
Иногда компании поддерживают внутренний прокси, который блокирует прямой доступ к общедоступным ресурсам. В этом случае Playwright можно настроить на загрузку браузеров через прокси-сервер.
- Bash
- PowerShell
- Batch
HTTPS_PROXY=https://192.0.2.1 npx playwright install
$Env:HTTPS_PROXY="https://192.0.2.1" npx playwright install
set HTTPS_PROXY=https://192.0.2.1 npx playwright install
Если запросы прокси перехватываются с помощью настраиваемого недоверенного центра сертификации (CA) и это приводит к Error: self signed certificate in certificate chain при загрузке браузеров, вы должны установить свои пользовательские корневые сертификаты через переменную среды NODE_EXTRA_CA_CERTS перед установкой браузеров:
- Bash
- PowerShell
- Batch
export NODE_EXTRA_CA_CERTS="/path/to/cert.pem"
$Env:NODE_EXTRA_CA_CERTS="C:\certs\root.crt"
set NODE_EXTRA_CA_CERTS="C:\certs\root.crt"
Если ваша сеть медленно подключается к архиву браузеров Playwright, вы можете увеличить тайм-аут подключения в миллисекундах с помощью переменной среды PLAYWRIGHT_DOWNLOAD_CONNECTION_TIMEOUT:
- Bash
- PowerShell
- Batch
PLAYWRIGHT_DOWNLOAD_CONNECTION_TIMEOUT=120000 npx playwright install
$Env:PLAYWRIGHT_DOWNLOAD_CONNECTION_TIMEOUT="120000" npx playwright install
set PLAYWRIGHT_DOWNLOAD_CONNECTION_TIMEOUT=120000 npx playwright install
Если вы устанавливаете зависимости и вам нужно использовать прокси в Linux, убедитесь, что вы выполняете команду от имени пользователя root. В противном случае Playwright попытается стать root и не передаст переменные среды, такие как HTTPS_PROXY менеджеру пакетов Linux.
sudo HTTPS_PROXY=https://192.0.2.1 npx playwright install-deps
Загрузка из хранилища артефактов
По умолчанию Playwright загружает браузеры с CDN Майкрософт.
Иногда компании поддерживают внутреннее хранилище артефактов для размещения бинарных файлов браузеров. В этом случае Playwright можно настроить на загрузку из настраиваемого расположения с помощью переменной среды PLAYWRIGHT_DOWNLOAD_HOST.
- Bash
- PowerShell
- Batch
PLAYWRIGHT_DOWNLOAD_HOST=http://192.0.2.1 npx playwright install
$Env:PLAYWRIGHT_DOWNLOAD_HOST="http://192.0.2.1" npx playwright install
set PLAYWRIGHT_DOWNLOAD_HOST=http://192.0.2.1 npx playwright install
Также возможно использование отдельных хостов загрузки для браузера с помощью переменных среды PLAYWRIGHT_CHROMIUM_DOWNLOAD_HOST, PLAYWRIGHT_FIREFOX_DOWNLOAD_HOST и PLAYWRIGHT_WEBKIT_DOWNLOAD_HOST, которые имеют приоритет над PLAYWRIGHT_DOWNLOAD_HOST.
- Bash
- PowerShell
- Batch
PLAYWRIGHT_FIREFOX_DOWNLOAD_HOST=http://203.0.113.3 PLAYWRIGHT_DOWNLOAD_HOST=http://192.0.2.1 npx playwright install
$Env:PLAYWRIGHT_FIREFOX_DOWNLOAD_HOST="http://203.0.113.3" $Env:PLAYWRIGHT_DOWNLOAD_HOST="http://192.0.2.1" npx playwright install
set PLAYWRIGHT_FIREFOX_DOWNLOAD_HOST=http://203.0.113.3 set PLAYWRIGHT_DOWNLOAD_HOST=http://192.0.2.1 npx playwright install
Управление бинарными файлами браузера
Playwright загружает браузеры Chromium, WebKit и Firefox в папки кэша, специфичные для ОС:
-
%USERPROFILE%\AppData\Local\ms-playwrightв Windows -
~/Library/Caches/ms-playwrightв macOS -
~/.cache/ms-playwrightв Linux
После установки эти браузеры займут несколько сотен мегабайт дискового пространства:
du -hs ~/Library/Caches/ms-playwright/* 281M chromium-XXXXXX 187M firefox-XXXX 180M webkit-XXXX
Вы можете переопределить стандартное поведение, используя переменные среды. При установке Playwright попросите его загрузить браузеры в определенное место:
- Bash
- PowerShell
- Batch
PLAYWRIGHT_BROWSERS_PATH=$HOME/pw-browsers npx playwright install
$Env:PLAYWRIGHT_BROWSERS_PATH="$Env:USERPROFILE\pw-browsers" npx playwright install
set PLAYWRIGHT_BROWSERS_PATH=%USERPROFILE%\pw-browsers npx playwright install
При выполнении скриптов Playwright попросите его искать браузеры в общем расположении.
- Bash
- PowerShell
- Batch
PLAYWRIGHT_BROWSERS_PATH=$HOME/pw-browsers npx playwright test
$Env:PLAYWRIGHT_BROWSERS_PATH="$Env:USERPROFILE\pw-browsers" npx playwright test
set PLAYWRIGHT_BROWSERS_PATH=%USERPROFILE%\pw-browsers npx playwright test
Playwright отслеживает пакеты, которые нуждаются в этих браузерах, и будет удалять их при обновлении Playwright до новых версий.
примечаниеРазработчики могут включить этот режим, экспортировав
PLAYWRIGHT_BROWSERS_PATH=$HOME/pw-browsersв свой.bashrc.
Герметичная установка
Вы можете включить герметичную установку и разместить бинарные файлы в локальной папке:
- Bash
- PowerShell
- Batch
# Places binaries to node_modules/playwright-core/.local-browsers PLAYWRIGHT_BROWSERS_PATH=0 npx playwright install
# Places binaries to node_modules\playwright-core\.local-browsers $Env:PLAYWRIGHT_BROWSERS_PATH=0 npx playwright install
# Places binaries to node_modules\playwright-core\.local-browsers set PLAYWRIGHT_BROWSERS_PATH=0 npx playwright install
примечание
PLAYWRIGHT_BROWSERS_PATHне изменяет путь установки для Google Chrome и Microsoft Edge.
Удаление устаревших браузеров
Playwright отслеживает клиентов, использующих свои браузеры. Когда больше нет клиентов, которым требуется определенная версия браузера, эта версия удаляется из системы. Таким образом, вы можете безопасно использовать экземпляры Playwright разных версий и в то же время не тратить дисковое пространство на браузеры, которые больше не используются.
Чтобы отключить удаление неиспользуемых браузеров, вы можете установить переменную среды PLAYWRIGHT_SKIP_BROWSER_GC=1.
Удаление браузеров
Это удалит браузеры (chromium, firefox, webkit) текущей установки Playwright:
npx playwright uninstall
Чтобы удалить браузеры и других установок Playwright, передайте флаг --all:
npx playwright uninstall --all
© 2024 Microsoft
Licensed under the Apache License, Version 2.0.
https://playwright.dev/docs/browsers