BrowserType
BrowserType предоставляет методы для запуска конкретного экземпляра браузера или подключения к существующему. Ниже приведен типичный пример использования Playwright для автоматизации:
- Sync
- Async
from playwright.sync_api import sync_playwright, Playwright
def run(playwright: Playwright):
chromium = playwright.chromium
browser = chromium.launch()
page = browser.new_page()
page.goto("https://example.com")
# другие действия...
browser.close()
with sync_playwright() as playwright:
run(playwright)
import asyncio
from playwright.async_api import async_playwright, Playwright
async def run(playwright: Playwright):
chromium = playwright.chromium
browser = await chromium.launch()
page = await browser.new_page()
await page.goto("https://example.com")
# другие действия...
await browser.close()
async def main():
async with async_playwright() as playwright:
await run(playwright)
asyncio.run(main())
Методы
connect
Added before v1.9Этот метод подключает Playwright к существующему экземпляру браузера, созданному через BrowserType.launchServer
в Node.js.
Основная и минорная версии экземпляра Playwright, который подключается, должны совпадать с версией Playwright, которая запускает браузер (1.2.3 → совместима с 1.2.x).
Использование
browser_type.connect(ws_endpoint)
browser_type.connect(ws_endpoint, **kwargs)
Аргументы
-
ws_endpoint
str Added in: v1.10#Websocket-эндпоинт браузера Playwright для подключения. Вы получаете этот эндпоинт через
BrowserServer.wsEndpoint
. -
expose_network
str (optional) Added in: v1.37#Эта опция открывает сеть, доступную на подключающемся клиенте, для браузера, к которому происходит подключение. Состоит из списка правил, разделенных запятыми.
Доступные правила:
- Шаблон имени хоста, например:
example.com
,*.org:99
,x.*.y.com
,*foo.org
. - IP-литерал, например:
127.0.0.1
,0.0.0.0:99
,[::1]
,[0:0::1]:99
. <loopback>
, который соответствует локальным интерфейсам loopback:localhost
,*.localhost
,127.0.0.1
,[::1]
.
Некоторые общие примеры:
"*"
для открытия всей сети."<loopback>"
для открытия сети localhost."*.test.internal-domain,*.staging.internal-domain,<loopback>"
для открытия тестовых/стейджинговых развертываний и localhost.
- Шаблон имени хоста, например:
-
headers
Dict[str, str] (optional) Added in: v1.11#Дополнительные HTTP-заголовки, которые будут отправлены с запросом на подключение по веб-сокету. Необязательно.
-
slow_mo
float (optional) Added in: v1.10#Замедляет операции Playwright на указанное количество миллисекунд. Полезно, чтобы вы могли видеть, что происходит. По умолчанию 0.
-
timeout
float (optional) Added in: v1.10#Максимальное время в миллисекундах для ожидания установления соединения. По умолчанию
0
(без таймаута).
Возвращает
connect_over_cdp
Added in: v1.9Этот метод подключает Playwright к существующему экземпляру браузера с использованием протокола Chrome DevTools.
Контекст браузера по умолчанию доступен через browser.contexts.
Подключение через протокол Chrome DevTools поддерживается только для браузеров на основе Chromium.
Это подключение значительно менее точное, чем подключение по протоколу Playwright через browser_type.connect(). Если у вас возникают проблемы или вы пытаетесь использовать расширенные функции, вам, вероятно, следует использовать browser_type.connect().
Использование
- Sync
- Async
browser = playwright.chromium.connect_over_cdp("http://localhost:9222")
default_context = browser.contexts[0]
page = default_context.pages[0]
browser = await playwright.chromium.connect_over_cdp("http://localhost:9222")
default_context = browser.contexts[0]
page = default_context.pages[0]
Аргументы
-
endpoint_url
str Added in: v1.11#Websocket-эндпоинт CDP или http URL для подключения. Например,
http://localhost:9222/
илиws://127.0.0.1:9222/devtools/browser/387adf4c-243f-4051-a181-46798f4a46f4
. -
headers
Dict[str, str] (optional) Added in: v1.11#Дополнительные HTTP-заголовки, которые будут отправлены с запросом на подключение. Необязательно.
-
slow_mo
float (optional) Added in: v1.11#Замедляет операции Playwright на указанное количество миллисекунд. Полезно, чтобы вы могли видеть, что происходит. По умолчанию 0.
-
timeout
float (optional) Added in: v1.11#Максимальное время в миллисекундах для ожидания установления соединения. По умолчанию
30000
(30 секунд). Установите0
, чтобы отключить таймаут.
Возвращает
launch
Added before v1.9Возвращает экземпляр браузера.
Использование
Вы можете использовать ignore_default_args, чтобы исключить --mute-audio
из аргументов по умолчанию:
- Sync
- Async
browser = playwright.chromium.launch( # или "firefox" или "webkit".
ignore_default_args=["--mute-audio"]
)
browser = await playwright.chromium.launch( # или "firefox" или "webkit".
ignore_default_args=["--mute-audio"]
)
Только для Chromium Playwright также может использоваться для управления браузерами Google Chrome или Microsoft Edge, но лучше всего он работает с версией Chromium, с которой он поставляется. Нет гарантии, что он будет работать с любой другой версией. Используйте опцию executable_path с крайней осторожностью.
Если предпочтителен Google Chrome (а не Chromium), рекомендуется использовать сборку Chrome Canary или Dev Channel.
Стандартные браузеры, такие как Google Chrome и Microsoft Edge, подходят для тестов, требующих проприетарных медиа-кодеков для воспроизведения видео. См. эту статью для других различий между Chromium и Chrome. Эта статья описывает некоторые различия для пользователей Linux.
Аргументы
-
warning
Используйте пользовательские аргументы браузера на свой страх и риск, так как некоторые из них могут нарушить функциональность Playwright.
Дополнительные аргументы для передачи экземпляру браузера. Список флагов Chromium можно найти здесь.
-
Канал распространения браузера.
Используйте "chromium", чтобы включить новый режим без головы.
Используйте "chrome", "chrome-beta", "chrome-dev", "chrome-canary", "msedge", "msedge-beta", "msedge-dev" или "msedge-canary", чтобы использовать брендированные Google Chrome и Microsoft Edge.
-
chromium_sandbox
bool (optional)#Включить песочницу Chromium. По умолчанию
false
. -
Устарело
Используйте инструменты отладки вместо этого.
Только для Chromium Открывать ли автоматически панель инструментов разработчика для каждой вкладки. Если эта опция установлена в
true
, опция headless будет установлена вfalse
. -
downloads_path
Union[str, pathlib.Path] (optional)#Если указано, принятые загрузки сохраняются в этот каталог. В противном случае создается временный каталог, который удаляется при закрытии браузера. В любом случае загрузки удаляются при закрытии контекста браузера, в котором они были созданы.
-
env
Dict[str, str | float | bool] (optional)#Укажите переменные окружения, которые будут видны браузеру. По умолчанию
process.env
. -
executable_path
Union[str, pathlib.Path] (optional)#Путь к исполняемому файлу браузера, который будет запущен вместо встроенного. Если executable_path является относительным путем, он разрешается относительно текущего рабочего каталога. Обратите внимание, что Playwright работает только с встроенными Chromium, Firefox или WebKit, используйте на свой страх и риск.
-
firefox_user_prefs
Dict[str, str | float | bool] (optional)#Пользовательские настройки Firefox. Узнайте больше о пользовательских настройках Firefox на
about:config
. -
handle_sighup
bool (optional)#Закрыть процесс браузера при SIGHUP. По умолчанию
true
. -
handle_sigint
bool (optional)#Закрыть процесс браузера при Ctrl-C. По умолчанию
true
. -
handle_sigterm
bool (optional)#Закрыть процесс браузера при SIGTERM. По умолчанию
true
. -
Запускать ли браузер в режиме без головы. Подробнее для Chromium и Firefox. По умолчанию
true
, если только опция devtools не установлена вtrue
. -
ignore_default_args
bool | List[str] (optional)#Если
true
, Playwright не передает свои собственные конфигурационные аргументы и использует только те, что указаны в args. Если передан массив, то исключает указанные аргументы по умолчанию. Опасная опция; используйте с осторожностью. По умолчаниюfalse
. -
-
server
strПрокси для использования для всех запросов. Поддерживаются HTTP и SOCKS прокси, например
http://myproxy.com:3128
илиsocks5://myproxy.com:3128
. Краткая формаmyproxy.com:3128
считается HTTP прокси. -
bypass
str (optional)Необязательные домены, разделенные запятыми, для обхода прокси, например
".com, chromium.org, .domain.com"
. -
username
str (optional)Необязательное имя пользователя для использования, если HTTP прокси требует аутентификации.
-
password
str (optional)Необязательный пароль для использования, если HTTP прокси требует аутентификации.
Настройки сетевого прокси.
-
-
Замедляет операции Playwright на указанное количество миллисекунд. Полезно, чтобы вы могли видеть, что происходит.
-
Максимальное время в миллисекундах для ожидания запуска экземпляра браузера. По умолчанию
30000
(30 секунд). Установите0
, чтобы отключить таймаут. -
traces_dir
Union[str, pathlib.Path] (optional)#Если указано, трассировки сохраняются в этот каталог.
Возвращает
launch_persistent_context
Added before v1.9Возвращает экземпляр постоянного контекста браузера.
Запускает браузер, который использует постоянное хранилище, расположенное в user_data_dir, и возвращает единственный контекст. Закрытие этого контекста автоматически закроет браузер.
Использование
browser_type.launch_persistent_context(user_data_dir)
browser_type.launch_persistent_context(user_data_dir, **kwargs)
Аргументы
-
user_data_dir
Union[str, pathlib.Path]#Путь к каталогу данных пользователя, который хранит данные сессии браузера, такие как cookies и локальное хранилище. Подробнее для Chromium и Firefox. Обратите внимание, что каталог данных пользователя Chromium является родительским каталогом "Profile Path", который можно увидеть на
chrome://version
. Передайте пустую строку, чтобы использовать временный каталог. -
accept_downloads
bool (опционально)#Автоматически загружать все вложения. По умолчанию
true
, где все загрузки принимаются. -
warning
Используйте пользовательские аргументы браузера на свой страх и риск, так как некоторые из них могут нарушить функциональность Playwright.
Дополнительные аргументы для передачи экземпляру браузера. Список флагов Chromium можно найти здесь.
-
При использовании page.goto(), page.route(), page.wait_for_url(), page.expect_request() или page.expect_response() учитывается базовый 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
- baseURL:
-
bypass_csp
bool (опционально)#Переключает обход политики безопасности контента страницы. По умолчанию
false
. -
Канал распространения браузера.
Используйте "chromium" для включения нового режима без головы.
Используйте "chrome", "chrome-beta", "chrome-dev", "chrome-canary", "msedge", "msedge-beta", "msedge-dev" или "msedge-canary", чтобы использовать брендированные Google Chrome и Microsoft Edge.
-
chromium_sandbox
bool (опционально)#Включает песочницу Chromium. По умолчанию
false
. -
client_certificates
List[Dict] (опционально) Добавлено в: 1.46#-
origin
strТочный источник, для которого сертификат действителен. Источник включает протокол
https
, имя хоста и, возможно, порт. -
certPath
Union[str, pathlib.Path] (опционально)Путь к файлу с сертификатом в формате PEM.
-
cert
bytes (опционально)Прямое значение сертификата в формате PEM.
-
keyPath
Union[str, pathlib.Path] (опционально)Путь к файлу с закрытым ключом в формате PEM.
-
key
bytes (опционально)Прямое значение закрытого ключа в формате PEM.
-
pfxPath
Union[str, pathlib.Path] (опционально)Путь к PFX или PKCS12 закодированному закрытому ключу и цепочке сертификатов.
-
pfx
bytes (опционально)Прямое значение PFX или PKCS12 закодированного закрытого ключа и цепочки сертификатов.
-
passphrase
str (опционально)Пароль для закрытого ключа (PEM или PFX).
Аутентификация клиента TLS позволяет серверу запросить клиентский сертификат и проверить его.
Детали
Массив клиентских сертификатов для использования. Каждый объект сертификата должен иметь либо оба
certPath
иkeyPath
, одинpfxPath
, либо их соответствующие прямые значения (cert
иkey
, илиpfx
). Опционально, свойствоpassphrase
должно быть предоставлено, если сертификат зашифрован. Свойствоorigin
должно быть предоставлено с точным соответствием источнику запроса, для которого сертификат действителен.примечаниеПри использовании WebKit на macOS доступ к
localhost
не будет использовать клиентские сертификаты. Вы можете сделать это, заменивlocalhost
наlocal.playwright
. -
-
color_scheme
"light" | "dark" | "no-preference" | "null" (опционально)#Эмулирует медиа-функцию prefers-colors-scheme, поддерживаемые значения:
'light'
и'dark'
. Подробнее см. page.emulate_media(). Передача'null'
сбрасывает эмуляцию на системные настройки по умолчанию. По умолчанию'light'
. -
contrast
"no-preference" | "more" | "null" (опционально)#Эмулирует медиа-функцию
'prefers-contrast'
, поддерживаемые значения:'no-preference'
,'more'
. Подробнее см. page.emulate_media(). Передача'null'
сбрасывает эмуляцию на системные настройки по умолчанию. По умолчанию'no-preference'
. -
device_scale_factor
float (опционально)#Указывает коэффициент масштабирования устройства (можно рассматривать как dpr). По умолчанию
1
. Узнайте больше о эмуляции устройств с коэффициентом масштабирования устройства. -
Устарело
Используйте инструменты отладки вместо этого.
Только для Chromium Автоматически открывать панель инструментов разработчика для каждой вкладки. Если этот параметр
true
, параметр headless будет установлен вfalse
. -
downloads_path
Union[str, pathlib.Path] (опционально)#Если указано, принятые загрузки загружаются в этот каталог. В противном случае создается временный каталог, который удаляется при закрытии браузера. В любом случае загрузки удаляются при закрытии контекста браузера, в котором они были созданы.
-
env
Dict[str, str | float | bool] (опционально)#Укажите переменные окружения, которые будут видны браузеру. По умолчанию
process.env
. -
executable_path
Union[str, pathlib.Path] (опционально)#Путь к исполняемому файлу браузера, который будет запущен вместо встроенного. Если executable_path является относительным путем, то он разрешается относительно текущего рабочего каталога. Обратите внимание, что Playwright работает только с встроенными Chromium, Firefox или WebKit, используйте на свой страх и риск.
-
extra_http_headers
Dict[str, str] (опционально)#Объект, содержащий дополнительные HTTP-заголовки, которые будут отправлены с каждым запросом. По умолчанию нет.
-
firefox_user_prefs
Dict[str, str | float | bool] (опционально) Добавлено в: v1.40#Пользовательские настройки Firefox. Узнайте больше о пользовательских настройках Firefox на
about:config
. -
forced_colors
"active" | "none" | "null" (опционально)#Эмулирует медиа-функцию
'forced-colors'
, поддерживаемые значения:'active'
,'none'
. Подробнее см. page.emulate_media(). Передача'null'
сбрасывает эмуляцию на системные настройки по умолчанию. По умолчанию'none'
. -
handle_sighup
bool (опционально)#Закрыть процесс браузера при SIGHUP. По умолчанию
true
. -
handle_sigint
bool (опционально)#Закрыть процесс браузера при Ctrl-C. По умолчанию
true
. -
handle_sigterm
bool (опционально)#Закрыть процесс браузера при SIGTERM. По умолчанию
true
. -
Указывает, поддерживает ли видовая область сенсорные события. По умолчанию false. Узнайте больше о мобильной эмуляции.
-
Запускать браузер в режиме без головы. Подробнее для Chromium и Firefox. По умолчанию
true
, если только параметр devtools не установлен вtrue
. -
http_credentials
Dict (опционально)#-
username
str -
password
str -
origin
str (опционально)Ограничить отправку HTTP-учетных данных на конкретный источник (scheme://host:port).
-
send
"unauthorized" | "always" (опционально)Этот параметр применяется только к запросам, отправленным из соответствующего APIRequestContext, и не влияет на запросы, отправленные из браузера.
'always'
- заголовокAuthorization
с учетными данными базовой аутентификации будет отправлен с каждым API-запросом.'unauthorized
- учетные данные отправляются только при получении ответа 401 (Unauthorized) с заголовкомWWW-Authenticate
. По умолчанию'unauthorized'
.
Учетные данные для HTTP-аутентификации. Если источник не указан, имя пользователя и пароль отправляются на любые серверы при получении неавторизованных ответов.
-
-
ignore_default_args
bool | List[str] (опционально)#Если
true
, Playwright не передает свои собственные аргументы конфигурации и использует только те, что указаны в args. Если передан массив, то фильтрует указанные аргументы по умолчанию. Опасный параметр; используйте с осторожностью. По умолчаниюfalse
. -
ignore_https_errors
bool (опционально)#Игнорировать ли ошибки HTTPS при отправке сетевых запросов. По умолчанию
false
. -
Учитывается ли тег
meta viewport
и включены ли сенсорные события. isMobile является частью устройства, поэтому вам не нужно устанавливать его вручную. По умолчаниюfalse
и не поддерживается в Firefox. Узнайте больше о мобильной эмуляции. -
java_script_enabled
bool (опционально)#Включать ли JavaScript в контексте. По умолчанию
true
. Узнайте больше о отключении JavaScript. -
Укажите локаль пользователя, например
en-GB
,de-DE
и т.д. Локаль повлияет на значениеnavigator.language
, значение заголовка запросаAccept-Language
, а также на правила форматирования чисел и дат. По умолчанию используется системная локаль. Узнайте больше о эмуляции в нашем руководстве по эмуляции. -
no_viewport
bool (опционально)#Не применять фиксированную видовую область, позволяет изменять размер окна в режиме с интерфейсом.
-
Эмулировать ли отключение сети. По умолчанию
false
. Узнайте больше о эмуляции сети. -
permissions
List[str] (опционально)#Список разрешений, которые будут предоставлены всем страницам в этом контексте. Подробнее см. browser_context.grant_permissions(). По умолчанию нет.
-
-
server
strПрокси, который будет использоваться для всех запросов. Поддерживаются HTTP и SOCKS прокси, например
http://myproxy.com:3128
илиsocks5://myproxy.com:3128
. Краткая формаmyproxy.com:3128
считается HTTP прокси. -
bypass
str (опционально)Опциональные домены, разделенные запятыми, для обхода прокси, например
".com, chromium.org, .domain.com"
. -
username
str (опционально)Опциональное имя пользователя для использования, если HTTP прокси требует аутентификации.
-
password
str (опционально)Опциональный пароль для использования, если HTTP прокси требует аутентификации.
Настройки сетевого прокси.
-
-
record_har_content
"omit" | "embed" | "attach" (опционально)#Опциональная настройка для управления содержимым ресурсов. Если указано
omit
, содержимое не сохраняется. Если указаноattach
, ресурсы сохраняются как отдельные файлы, и все эти файлы архивируются вместе с HAR файлом. По умолчаниюembed
, что сохраняет содержимое в HAR файле в соответствии со спецификацией HAR. -
record_har_mode
"full" | "minimal" (опционально)#При установке в
minimal
записывается только информация, необходимая для маршрутизации из HAR. Это исключает размеры, время, страницу, cookies, безопасность и другие типы информации HAR, которые не используются при воспроизведении из HAR. По умолчаниюfull
. -
record_har_omit_content
bool (опционально)#Опциональная настройка для управления тем, следует ли исключать содержимое запроса из HAR. По умолчанию
false
. -
record_har_path
Union[str, pathlib.Path] (опционально)#Включает запись HAR для всех страниц в указанный HAR файл на файловой системе. Если не указано, HAR не записывается. Убедитесь, что вызов browser_context.close() для сохранения HAR.
-
record_video_dir
Union[str, pathlib.Path] (опционально)#Включает запись видео для всех страниц в указанный каталог. Если не указано, видео не записываются. Убедитесь, что вызов browser_context.close() для сохранения видео.
-
record_video_size
Dict (опционально)#Размеры записанных видео. Если не указано, размер будет равен
viewport
, уменьшенному для соответствия 800x800. Еслиviewport
не настроен явно, размер видео по умолчанию составляет 800x450. Фактическое изображение каждой страницы будет уменьшено, если необходимо, чтобы соответствовать указанному размеру. -
reduced_motion
"reduce" | "no-preference" | "null" (опционально)#Эмулирует медиа-функцию
'prefers-reduced-motion'
, поддерживаемые значения:'reduce'
,'no-preference'
. Подробнее см. page.emulate_media(). Передача'null'
сбрасывает эмуляцию на системные настройки по умолчанию. По умолчанию'no-preference'
. -
Эмулирует постоянный размер экрана окна, доступный внутри веб-страницы через
window.screen
. Используется только, когда viewport установлен. -
service_workers
"allow" | "block" (опционально)#Разрешать ли сайтам регистрировать сервисные работники. По умолчанию
'allow'
.'allow'
: Сервисные работники могут быть зарегистрированы.'block'
: Playwright будет блокировать всю регистрацию сервисных работников.
-
Замедляет операции Playwright на указанное количество миллисекунд. Полезно, чтобы вы могли видеть, что происходит.
-
strict_selectors
bool (опционально)#Если установлено в true, включает режим строгих селекторов для этого контекста. В режиме строгих селекторов все операции с селекторами, которые подразумевают один целевой элемент DOM, будут вызывать ошибку, если более одного элемента соответствует селектору. Этот параметр не влияет на любые API локаторов (локаторы всегда строгие). По умолчанию
false
. Подробнее о строгом режиме см. Locator. -
Максимальное время в миллисекундах для ожидания запуска экземпляра браузера. По умолчанию
30000
(30 секунд). Передайте0
, чтобы отключить тайм-аут. -
timezone_id
str (опционально)#Изменяет часовой пояс контекста. См. metaZones.txt ICU для списка поддерживаемых идентификаторов часовых поясов. По умолчанию используется системный часовой пояс.
-
traces_dir
Union[str, pathlib.Path] (опционально)#Если указано, трассировки сохраняются в этот каталог.
-
Специфический пользовательский агент для использования в этом контексте.
-
viewport
NoneType | Dict (опционально)#Устанавливает постоянную видовую область для каждой страницы. По умолчанию видовая область 1280x720.
no_viewport
отключает фиксированную видовую область. Узнайте больше о эмуляции видовой области.
Возвращает
Свойства
executable_path
Added before v1.9Путь, где Playwright ожидает найти встроенный исполняемый файл браузера.
Использование
browser_type.executable_path
Возвращает
name
Добавлено до версии v1.9Возвращает имя браузера. Например: 'chromium'
, 'webkit'
или 'firefox'
.
Использование
browser_type.name
Возвращает