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_endpointstr Added in: v1.10#Websocket-эндпоинт браузера Playwright для подключения. Вы получаете этот эндпоинт через
BrowserServer.wsEndpoint. -
expose_networkstr (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.
- Шаблон имени хоста, например:
-
headersDict[str, str] (optional) Added in: v1.11#Дополнительные HTTP-заголовки, которые будут отправлены с запросом на подключение по веб-сокету. Необязательно.
-
slow_mofloat (optional) Added in: v1.10#Замедляет операции Playwright на указанное количество миллисекунд. Полезно, чтобы вы могли видеть, что происходит. По умолчанию 0.
-
timeoutfloat (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_urlstr Added in: v1.11#Websocket-эндпоинт CDP или http URL для подключения. Например,
http://localhost:9222/илиws://127.0.0.1:9222/devtools/browser/387adf4c-243f-4051-a181-46798f4a46f4. -
headersDict[str, str] (optional) Added in: v1.11#Дополнительные HTTP-заголовки, которые будут отправлены с запросом на подключение. Необязательно.
-
slow_mofloat (optional) Added in: v1.11#Замедляет операции Playwright на указанное количество миллисекунд. Полезно, чтобы вы могли видеть, что происходит. По умолчанию 0.
-
timeoutfloat (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_sandboxbool (optional)#Включить песочницу Chromium. По умолчанию
false. -
Устарело
Используйте инструменты отладки вместо этого.
Только для Chromium Открывать ли автоматически панель инструментов разработчика для каждой вкладки. Если эта опция установлена в
true, опция headless будет установлена вfalse. -
downloads_pathUnion[str, pathlib.Path] (optional)#Если указано, принятые загрузки сохраняются в этот каталог. В противном случае создается временный каталог, который удаляется при закрытии браузера. В любом случае загрузки удаляются при закрытии контекста браузера, в котором они были созданы.
-
envDict[str, str | float | bool] (optional)#Укажите переменные окружения, которые будут видны браузеру. По умолчанию
process.env. -
executable_pathUnion[str, pathlib.Path] (optional)#Путь к исполняемому файлу браузера, который будет запущен вместо встроенного. Если executable_path является относительным путем, он разрешается относительно текущего рабочего каталога. Обратите внимание, что Playwright работает только с встроенными Chromium, Firefox или WebKit, используйте на свой страх и риск.
-
firefox_user_prefsDict[str, str | float | bool] (optional)#Пользовательские настройки Firefox. Узнайте больше о пользовательских настройках Firefox на
about:config. -
handle_sighupbool (optional)#Закрыть процесс браузера при SIGHUP. По умолчанию
true. -
handle_sigintbool (optional)#Закрыть процесс браузера при Ctrl-C. По умолчанию
true. -
handle_sigtermbool (optional)#Закрыть процесс браузера при SIGTERM. По умолчанию
true. -
Запускать ли браузер в режиме без головы. Подробнее для Chromium и Firefox. По умолчанию
true, если только опция devtools не установлена вtrue. -
ignore_default_argsbool | List[str] (optional)#Если
true, Playwright не передает свои собственные конфигурационные аргументы и использует только те, что указаны в args. Если передан массив, то исключает указанные аргументы по умолчанию. Опасная опция; используйте с осторожностью. По умолчаниюfalse. -
-
serverstrПрокси для использования для всех запросов. Поддерживаются HTTP и SOCKS прокси, например
http://myproxy.com:3128илиsocks5://myproxy.com:3128. Краткая формаmyproxy.com:3128считается HTTP прокси. -
bypassstr (optional)Необязательные домены, разделенные запятыми, для обхода прокси, например
".com, chromium.org, .domain.com". -
usernamestr (optional)Необязательное имя пользователя для использования, если HTTP прокси требует аутентификации.
-
passwordstr (optional)Необязательный пароль для использования, если HTTP прокси требует аутентификации.
Настройки сетевого прокси.
-
-
Замедляет операции Playwright на указанное количество миллисекунд. Полезно, чтобы вы могли видеть, что происходит.
-
Максимальное время в миллисекундах для ожидания запуска экземпляра браузера. По умолчанию
30000(30 секунд). Установите0, чтобы отключить таймаут. -
traces_dirUnion[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_dirUnion[str, pathlib.Path]#Путь к каталогу данных пользователя, который хранит данные сессии браузера, такие как cookies и локальное хранилище. Подробнее для Chromium и Firefox. Обратите внимание, что каталог данных пользователя Chromium является родительским каталогом "Profile Path", который можно увидеть на
chrome://version. Передайте пустую строку, чтобы использовать временный каталог. -
accept_downloadsbool (опционально)#Автоматически загружать все вложения. По умолчанию
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_cspbool (опционально)#Переключает обход политики безопасности контента страницы. По умолчанию
false. -
Канал распространения браузера.
Используйте "chromium" для включения нового режима без головы.
Используйте "chrome", "chrome-beta", "chrome-dev", "chrome-canary", "msedge", "msedge-beta", "msedge-dev" или "msedge-canary", чтобы использовать брендированные Google Chrome и Microsoft Edge.
-
chromium_sandboxbool (опционально)#Включает песочницу Chromium. По умолчанию
false. -
client_certificatesList[Dict] (опционально) Добавлено в: 1.46#-
originstrТочный источник, для которого сертификат действителен. Источник включает протокол
https, имя хоста и, возможно, порт. -
certPathUnion[str, pathlib.Path] (опционально)Путь к файлу с сертификатом в формате PEM.
-
certbytes (опционально)Прямое значение сертификата в формате PEM.
-
keyPathUnion[str, pathlib.Path] (опционально)Путь к файлу с закрытым ключом в формате PEM.
-
keybytes (опционально)Прямое значение закрытого ключа в формате PEM.
-
pfxPathUnion[str, pathlib.Path] (опционально)Путь к PFX или PKCS12 закодированному закрытому ключу и цепочке сертификатов.
-
pfxbytes (опционально)Прямое значение PFX или PKCS12 закодированного закрытого ключа и цепочки сертификатов.
-
passphrasestr (опционально)Пароль для закрытого ключа (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_factorfloat (опционально)#Указывает коэффициент масштабирования устройства (можно рассматривать как dpr). По умолчанию
1. Узнайте больше о эмуляции устройств с коэффициентом масштабирования устройства. -
Устарело
Используйте инструменты отладки вместо этого.
Только для Chromium Автоматически открывать панель инструментов разработчика для каждой вкладки. Если этот параметр
true, параметр headless будет установлен вfalse. -
downloads_pathUnion[str, pathlib.Path] (опционально)#Если указано, принятые загрузки загружаются в этот каталог. В противном случае создается временный каталог, который удаляется при закрытии браузера. В любом случае загрузки удаляются при закрытии контекста браузера, в котором они были созданы.
-
envDict[str, str | float | bool] (опционально)#Укажите переменные окружения, которые будут видны браузеру. По умолчанию
process.env. -
executable_pathUnion[str, pathlib.Path] (опционально)#Путь к исполняемому файлу браузера, который будет запущен вместо встроенного. Если executable_path является относительным путем, то он разрешается относительно текущего рабочего каталога. Обратите внимание, что Playwright работает только с встроенными Chromium, Firefox или WebKit, используйте на свой страх и риск.
-
extra_http_headersDict[str, str] (опционально)#Объект, содержащий дополнительные HTTP-заголовки, которые будут отправлены с каждым запросом. По умолчанию нет.
-
firefox_user_prefsDict[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_sighupbool (опционально)#Закрыть процесс браузера при SIGHUP. По умолчанию
true. -
handle_sigintbool (опционально)#Закрыть процесс браузера при Ctrl-C. По умолчанию
true. -
handle_sigtermbool (опционально)#Закрыть процесс браузера при SIGTERM. По умолчанию
true. -
Указывает, поддерживает ли видовая область сенсорные события. По умолчанию false. Узнайте больше о мобильной эмуляции.
-
Запускать браузер в режиме без головы. Подробнее для Chromium и Firefox. По умолчанию
true, если только параметр devtools не установлен вtrue. -
http_credentialsDict (опционально)#-
usernamestr -
passwordstr -
originstr (опционально)Ограничить отправку HTTP-учетных данных на конкретный источник (scheme://host:port).
-
send"unauthorized" | "always" (опционально)Этот параметр применяется только к запросам, отправленным из соответствующего APIRequestContext, и не влияет на запросы, отправленные из браузера.
'always'- заголовокAuthorizationс учетными данными базовой аутентификации будет отправлен с каждым API-запросом.'unauthorized- учетные данные отправляются только при получении ответа 401 (Unauthorized) с заголовкомWWW-Authenticate. По умолчанию'unauthorized'.
Учетные данные для HTTP-аутентификации. Если источник не указан, имя пользователя и пароль отправляются на любые серверы при получении неавторизованных ответов.
-
-
ignore_default_argsbool | List[str] (опционально)#Если
true, Playwright не передает свои собственные аргументы конфигурации и использует только те, что указаны в args. Если передан массив, то фильтрует указанные аргументы по умолчанию. Опасный параметр; используйте с осторожностью. По умолчаниюfalse. -
ignore_https_errorsbool (опционально)#Игнорировать ли ошибки HTTPS при отправке сетевых запросов. По умолчанию
false. -
Учитывается ли тег
meta viewportи включены ли сенсорные события. isMobile является частью устройства, поэтому вам не нужно устанавливать его вручную. По умолчаниюfalseи не поддерживается в Firefox. Узнайте больше о мобильной эмуляции. -
java_script_enabledbool (опционально)#Включать ли JavaScript в контексте. По умолчанию
true. Узнайте больше о отключении JavaScript. -
Укажите локаль пользователя, например
en-GB,de-DEи т.д. Локаль повлияет на значениеnavigator.language, значение заголовка запросаAccept-Language, а также на правила форматирования чисел и дат. По умолчанию используется системная локаль. Узнайте больше о эмуляции в нашем руководстве по эмуляции. -
no_viewportbool (опционально)#Не применять фиксированную видовую область, позволяет изменять размер окна в режиме с интерфейсом.
-
Эмулировать ли отключение сети. По умолчанию
false. Узнайте больше о эмуляции сети. -
permissionsList[str] (опционально)#Список разрешений, которые будут предоставлены всем страницам в этом контексте. Подробнее см. browser_context.grant_permissions(). По умолчанию нет.
-
-
serverstrПрокси, который будет использоваться для всех запросов. Поддерживаются HTTP и SOCKS прокси, например
http://myproxy.com:3128илиsocks5://myproxy.com:3128. Краткая формаmyproxy.com:3128считается HTTP прокси. -
bypassstr (опционально)Опциональные домены, разделенные запятыми, для обхода прокси, например
".com, chromium.org, .domain.com". -
usernamestr (опционально)Опциональное имя пользователя для использования, если HTTP прокси требует аутентификации.
-
passwordstr (опционально)Опциональный пароль для использования, если 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_contentbool (опционально)#Опциональная настройка для управления тем, следует ли исключать содержимое запроса из HAR. По умолчанию
false. -
record_har_pathUnion[str, pathlib.Path] (опционально)#Включает запись HAR для всех страниц в указанный HAR файл на файловой системе. Если не указано, HAR не записывается. Убедитесь, что вызов browser_context.close() для сохранения HAR.
-
record_video_dirUnion[str, pathlib.Path] (опционально)#Включает запись видео для всех страниц в указанный каталог. Если не указано, видео не записываются. Убедитесь, что вызов browser_context.close() для сохранения видео.
-
record_video_sizeDict (опционально)#Размеры записанных видео. Если не указано, размер будет равен
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_selectorsbool (опционально)#Если установлено в true, включает режим строгих селекторов для этого контекста. В режиме строгих селекторов все операции с селекторами, которые подразумевают один целевой элемент DOM, будут вызывать ошибку, если более одного элемента соответствует селектору. Этот параметр не влияет на любые API локаторов (локаторы всегда строгие). По умолчанию
false. Подробнее о строгом режиме см. Locator. -
Максимальное время в миллисекундах для ожидания запуска экземпляра браузера. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. -
timezone_idstr (опционально)#Изменяет часовой пояс контекста. См. metaZones.txt ICU для списка поддерживаемых идентификаторов часовых поясов. По умолчанию используется системный часовой пояс.
-
traces_dirUnion[str, pathlib.Path] (опционально)#Если указано, трассировки сохраняются в этот каталог.
-
Специфический пользовательский агент для использования в этом контексте.
-
viewportNoneType | Dict (опционально)#Устанавливает постоянную видовую область для каждой страницы. По умолчанию видовая область 1280x720.
no_viewportотключает фиксированную видовую область. Узнайте больше о эмуляции видовой области.
Возвращает
Свойства
executable_path
Added before v1.9Путь, где Playwright ожидает найти встроенный исполняемый файл браузера.
Использование
browser_type.executable_path
Возвращает
name
Добавлено до версии v1.9Возвращает имя браузера. Например: 'chromium', 'webkit' или 'firefox'.
Использование
browser_type.name
Возвращает