Перейти к основному содержимому

BrowserType

BrowserType предоставляет методы для запуска конкретного экземпляра браузера или подключения к существующему. Ниже приведен типичный пример использования Playwright для автоматизации:

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)

Методы

connect

Added before v1.9 browserType.connect

Этот метод подключает 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#

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

    Доступные правила:

    1. Шаблон имени хоста, например: example.com, *.org:99, x.*.y.com, *foo.org.
    2. IP-литерал, например: 127.0.0.1, 0.0.0.0:99, [::1], [0:0::1]:99.
    3. <loopback>, который соответствует локальным интерфейсам loopback: localhost, *.localhost, 127.0.0.1, [::1].

    Некоторые общие примеры:

    1. "*" для открытия всей сети.
    2. "<loopback>" для открытия сети localhost.
    3. "*.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 browserType.connect_over_cdp

Этот метод подключает Playwright к существующему экземпляру браузера с использованием протокола Chrome DevTools.

Контекст браузера по умолчанию доступен через browser.contexts.

примечание

Подключение через протокол Chrome DevTools поддерживается только для браузеров на основе Chromium.

примечание

Это подключение значительно менее точное, чем подключение по протоколу Playwright через browser_type.connect(). Если у вас возникают проблемы или вы пытаетесь использовать расширенные функции, вам, вероятно, следует использовать browser_type.connect().

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

browser = 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 browserType.launch

Возвращает экземпляр браузера.

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

Вы можете использовать ignore_default_args, чтобы исключить --mute-audio из аргументов по умолчанию:

browser = 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.

Аргументы

  • args List[str] (optional)#

    warning

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

    Дополнительные аргументы для передачи экземпляру браузера. Список флагов Chromium можно найти здесь.

  • channel str (optional)#

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

    Используйте "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.

  • devtools bool (optional)#

    Устарело

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

    Только для 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.

  • headless bool (optional)#

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

  • ignore_default_args bool | List[str] (optional)#

    Если true, Playwright не передает свои собственные конфигурационные аргументы и использует только те, что указаны в args. Если передан массив, то исключает указанные аргументы по умолчанию. Опасная опция; используйте с осторожностью. По умолчанию false.

  • proxy Dict (optional)#

    • 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 прокси требует аутентификации.

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

  • slow_mo float (optional)#

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

  • timeout float (optional)#

    Максимальное время в миллисекундах для ожидания запуска экземпляра браузера. По умолчанию 30000 (30 секунд). Установите 0, чтобы отключить таймаут.

  • traces_dir Union[str, pathlib.Path] (optional)#

    Если указано, трассировки сохраняются в этот каталог.

Возвращает


launch_persistent_context

Added before v1.9 browserType.launch_persistent_context

Возвращает экземпляр постоянного контекста браузера.

Запускает браузер, который использует постоянное хранилище, расположенное в 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, где все загрузки принимаются.

  • args List[str] (опционально)#

    warning

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

    Дополнительные аргументы для передачи экземпляру браузера. Список флагов Chromium можно найти здесь.

  • base_url str (опционально)#

    При использовании 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
  • bypass_csp bool (опционально)#

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

  • channel str (опционально)#

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

    Используйте "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. Узнайте больше о эмуляции устройств с коэффициентом масштабирования устройства.

  • devtools bool (опционально)#

    Устарело

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

    Только для 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'.

  • geolocation Dict (опционально)#

    • latitude float

      Широта от -90 до 90.

    • longitude float

      Долгота от -180 до 180.

    • accuracy float (опционально)

      Неотрицательное значение точности. По умолчанию 0.

  • handle_sighup bool (опционально)#

    Закрыть процесс браузера при SIGHUP. По умолчанию true.

  • handle_sigint bool (опционально)#

    Закрыть процесс браузера при Ctrl-C. По умолчанию true.

  • handle_sigterm bool (опционально)#

    Закрыть процесс браузера при SIGTERM. По умолчанию true.

  • has_touch bool (опционально)#

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

  • headless bool (опционально)#

    Запускать браузер в режиме без головы. Подробнее для 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.

  • is_mobile bool (опционально)#

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

  • java_script_enabled bool (опционально)#

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

  • locale str (опционально)#

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

  • no_viewport bool (опционально)#

    Не применять фиксированную видовую область, позволяет изменять размер окна в режиме с интерфейсом.

  • offline bool (опционально)#

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

  • permissions List[str] (опционально)#

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

  • proxy Dict (опционально)#

    • 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_har_url_filter str | Pattern (опционально)#

  • record_video_dir Union[str, pathlib.Path] (опционально)#

    Включает запись видео для всех страниц в указанный каталог. Если не указано, видео не записываются. Убедитесь, что вызов browser_context.close() для сохранения видео.

  • record_video_size Dict (опционально)#

    • width int

      Ширина кадра видео.

    • height int

      Высота кадра видео.

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

  • reduced_motion "reduce" | "no-preference" | "null" (опционально)#

    Эмулирует медиа-функцию 'prefers-reduced-motion', поддерживаемые значения: 'reduce', 'no-preference'. Подробнее см. page.emulate_media(). Передача 'null' сбрасывает эмуляцию на системные настройки по умолчанию. По умолчанию 'no-preference'.

  • screen Dict (опционально)#

    • width int

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

    • height int

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

    Эмулирует постоянный размер экрана окна, доступный внутри веб-страницы через window.screen. Используется только, когда viewport установлен.

  • service_workers "allow" | "block" (опционально)#

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

    • 'allow': Сервисные работники могут быть зарегистрированы.
    • 'block': Playwright будет блокировать всю регистрацию сервисных работников.
  • slow_mo float (опционально)#

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

  • strict_selectors bool (опционально)#

    Если установлено в true, включает режим строгих селекторов для этого контекста. В режиме строгих селекторов все операции с селекторами, которые подразумевают один целевой элемент DOM, будут вызывать ошибку, если более одного элемента соответствует селектору. Этот параметр не влияет на любые API локаторов (локаторы всегда строгие). По умолчанию false. Подробнее о строгом режиме см. Locator.

  • timeout float (опционально)#

    Максимальное время в миллисекундах для ожидания запуска экземпляра браузера. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут.

  • timezone_id str (опционально)#

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

  • traces_dir Union[str, pathlib.Path] (опционально)#

    Если указано, трассировки сохраняются в этот каталог.

  • user_agent str (опционально)#

    Специфический пользовательский агент для использования в этом контексте.

  • viewport NoneType | Dict (опционально)#

    • width int

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

    • height int

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

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

Возвращает


Свойства

executable_path

Added before v1.9 browserType.executable_path

Путь, где Playwright ожидает найти встроенный исполняемый файл браузера.

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

browser_type.executable_path

Возвращает


name

Добавлено до версии v1.9 browserType.name

Возвращает имя браузера. Например: 'chromium', 'webkit' или 'firefox'.

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

browser_type.name

Возвращает