BrowserType
BrowserType предоставляет методы для запуска конкретного экземпляра браузера или подключения к существующему. Ниже приведен типичный пример использования Playwright для автоматизации:
import com.microsoft.playwright.*;
public class Example {
public static void main(String[] args) {
try (Playwright playwright = Playwright.create()) {
BrowserType chromium = playwright.chromium();
Browser browser = chromium.launch();
Page page = browser.newPage();
page.navigate("https://example.com");
// другие действия...
browser.close();
}
}
}
Методы
connect
Добавлено до v1.9Этот метод подключает Playwright к существующему экземпляру браузера, созданному через BrowserType.launchServer в Node.js.
Основная и минорная версии экземпляра Playwright, который подключается, должны совпадать с версией Playwright, которая запускает браузер (1.2.3 → совместимо с 1.2.x).
Использование
BrowserType.connect(wsEndpoint);
BrowserType.connect(wsEndpoint, options);
Аргументы
-
wsEndpointString Добавлено в: v1.10#Веб-сокетный эндпоинт браузера Playwright для подключения. Вы получаете этот эндпоинт через
BrowserServer.wsEndpoint. -
optionsBrowserType.ConnectOptions(опционально)-
setExposeNetworkString (опционально) Добавлено в: 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.
- Шаблон имени хоста, например:
-
setHeadersMap<String, String> (опционально) Добавлено в: v1.11#Дополнительные HTTP-заголовки, которые будут отправлены с запросом на подключение веб-сокета. Опционально.
-
setSlowModouble (опционально) Добавлено в: v1.10#Замедляет операции Playwright на указанное количество миллисекунд. Полезно, чтобы увидеть, что происходит. По умолчанию 0.
-
setTimeoutdouble (опционально) Добавлено в: v1.10#Максимальное время в миллисекундах для ожидания установления соединения. По умолчанию
0(без таймаута).
-
Возвращает
connectOverCDP
Добавлено в: v1.9Этот метод подключает Playwright к существующему экземпляру браузера с использованием протокола Chrome DevTools.
Контекст браузера по умолчанию доступен через Browser.contexts().
Подключение через протокол Chrome DevTools поддерживается только для браузеров на основе Chromium.
Это подключение значительно менее точное, чем подключение по протоколу Playwright через BrowserType.connect(). Если у вас возникают проблемы или вы пытаетесь использовать расширенные функции, вам, вероятно, следует использовать BrowserType.connect().
Использование
Browser browser = playwright.chromium().connectOverCDP("http://localhost:9222");
BrowserContext defaultContext = browser.contexts().get(0);
Page page = defaultContext.pages().get(0);
Аргументы
-
endpointURLString Добавлено в: v1.11#Веб-сокетный эндпоинт CDP или http URL для подключения. Например,
http://localhost:9222/илиws://127.0.0.1:9222/devtools/browser/387adf4c-243f-4051-a181-46798f4a46f4. -
optionsBrowserType.ConnectOverCDPOptions(опционально)-
setHeadersMap<String, String> (опционально) Добавлено в: v1.11#Дополнительные HTTP-заголовки, которые будут отправлены с запросом на подключение. Опционально.
-
setSlowModouble (опционально) Добавлено в: v1.11#Замедляет операции Playwright на указанное количество миллисекунд. Полезно, чтобы увидеть, что происходит. По умолчанию 0.
-
setTimeoutdouble (опционально) Добавлено в: v1.11#Максимальное время в миллисекундах для ожидания установления соединения. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить таймаут.
-
Возвращает
executablePath
Добавлено до v1.9Путь, где Playwright ожидает найти встроенный исполняемый файл браузера.
Использование
BrowserType.executablePath();
Возвращает
launch
Добавлено до v1.9Возвращает экземпляр браузера.
Использование
Вы можете использовать setIgnoreDefaultArgs, чтобы исключить --mute-audio из аргументов по умолчанию:
// Или "firefox" или "webkit".
Browser browser = chromium.launch(new BrowserType.LaunchOptions()
.setIgnoreDefaultArgs(Arrays.asList("--mute-audio")));
Только для Chromium Playwright также может использоваться для управления браузерами Google Chrome или Microsoft Edge, но лучше всего работает с версией Chromium, с которой он поставляется. Нет гарантии, что он будет работать с любой другой версией. Используйте опцию setExecutablePath с крайней осторожностью.
Если предпочтителен Google Chrome (а не Chromium), рекомендуется использовать сборку Chrome Canary или Dev Channel.
Стоковые браузеры, такие как Google Chrome и Microsoft Edge, подходят для тестов, требующих проприетарных медиа-кодеков для воспроизведения видео. См. эту статью для других различий между Chromium и Chrome. Эта статья описывает некоторые различия для пользователей Linux.
Аргументы
optionsBrowserType.LaunchOptions(опционально)-
setArgsList<String> (опционально)#warningИспользуйте пользовательские аргументы браузера на свой страх и риск, так как некоторые из них могут нарушить функциональность Playwright.
Дополнительные аргументы для передачи экземпляру браузера. Список флагов Chromium можно найти здесь.
-
setChannelString (опционально)#Канал распространения браузера.
Используйте "chromium", чтобы включить новый режим без головы.
Используйте "chrome", "chrome-beta", "chrome-dev", "chrome-canary", "msedge", "msedge-beta", "msedge-dev" или "msedge-canary", чтобы использовать брендированные Google Chrome и Microsoft Edge.
-
setChromiumSandboxboolean (опционально)#Включить песочницу Chromium. По умолчанию
false. -
setDevtoolsboolean (опционально)#УстарелоИспользуйте инструменты отладки вместо этого.
Только для Chromium Открывать ли автоматически панель инструментов разработчика для каждой вкладки. Если эта опция установлена в
true, опция setHeadless будет установлена вfalse. -
setDownloadsPathPath (опционально)#Если указано, принятые загрузки загружаются в этот каталог. В противном случае создается временный каталог, который удаляется при закрытии браузера. В любом случае загрузки удаляются, когда закрывается контекст браузера, в котором они были созданы.
-
setEnvMap<String, String> (опционально)#Укажите переменные окружения, которые будут видны браузеру. По умолчанию
process.env. -
setExecutablePathPath (опционально)#Путь к исполняемому файлу браузера, который будет запущен вместо встроенного. Если setExecutablePath является относительным путем, то он разрешается относительно текущего рабочего каталога. Обратите внимание, что Playwright работает только с встроенными Chromium, Firefox или WebKit, используйте на свой страх и риск.
-
setFirefoxUserPrefsMap<String, Object> (опционально)#Пользовательские настройки Firefox. Узнайте больше о пользовательских настройках Firefox на
about:config. -
setHandleSIGHUPboolean (опционально)#Закрыть процесс браузера при SIGHUP. По умолчанию
true. -
setHandleSIGINTboolean (опционально)#Закрыть процесс браузера при Ctrl-C. По умолчанию
true. -
setHandleSIGTERMboolean (опционально)#Закрыть процесс браузера при SIGTERM. По умолчанию
true. -
setHeadlessboolean (опционально)#Запускать ли браузер в режиме без головы. Подробнее для Chromium и Firefox. По умолчанию
true, если только опция setDevtools не установлена вtrue. -
setIgnoreAllDefaultArgsboolean (опционально) Добавлено в: v1.9#Если
true, Playwright не передает свои собственные аргументы конфигурации и использует только те, которые указаны в setArgs. Опасная опция; используйте с осторожностью. По умолчаниюfalse. -
setIgnoreDefaultArgsList<String> (опционально)#Если
true, Playwright не передает свои собственные аргументы конфигурации и использует только те, которые указаны в setArgs. Опасная опция; используйте с осторожностью. -
setProxyProxy (опционально)#-
setServerStringПрокси, который будет использоваться для всех запросов. Поддерживаются HTTP и SOCKS прокси, например
http://myproxy.com:3128илиsocks5://myproxy.com:3128. Краткая формаmyproxy.com:3128считается HTTP прокси. -
setBypassString (опционально)Опциональные домены, разделенные запятыми, для обхода прокси, например
".com, chromium.org, .domain.com". -
setUsernameString (опционально)Опциональное имя пользователя для использования, если HTTP прокси требует аутентификации.
-
setPasswordString (опционально)Опциональный пароль для использования, если HTTP прокси требует аутентификации.
Настройки сетевого прокси.
-
-
setSlowModouble (опционально)#Замедляет операции Playwright на указанное количество миллисекунд. Полезно, чтобы увидеть, что происходит.
-
setTimeoutdouble (опционально)#Максимальное время в миллисекундах для ожидания запуска экземпляра браузера. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить таймаут. -
setTracesDirPath (опционально)#Если указано, трассировки сохраняются в этот каталог.
-
Возвращает
launchPersistentContext
Добавлено до v1.9Возвращает экземпляр постоянного контекста браузера.
Запускает браузер, который использует постоянное хранилище, расположенное в userDataDir, и возвращает единственный контекст. Закрытие этого контекста автоматически закроет браузер.
Использование
BrowserType.launchPersistentContext(userDataDir);
BrowserType.launchPersistentContext(userDataDir, options);
Аргументы
-
Путь к каталогу пользовательских данных, который хранит данные сессии браузера, такие как куки и локальное хранилище. Подробнее для Chromium и Firefox. Обратите внимание, что каталог пользовательских данных Chromium является родительским каталогом "Пути профиля", видимого на
chrome://version. Передайте пустую строку, чтобы использовать временный каталог. -
optionsBrowserType.LaunchPersistentContextOptions(опционально)-
setAcceptDownloadsboolean (опционально)#Автоматически загружать все вложения. По умолчанию
true, где все загрузки принимаются. -
setArgsList<String> (опционально)#warningИспользуйте пользовательские аргументы браузера на свой страх и риск, так как некоторые из них могут нарушить функциональность Playwright.
Дополнительные аргументы для передачи экземпляру браузера. Список флагов Chromium можно найти здесь.
-
setBaseURLString (опционально)#При использовании Page.navigate(), 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
- baseURL:
-
setBypassCSPboolean (опционально)#Переключает обход политики безопасности контента страницы. По умолчанию
false. -
setChannelString (опционально)#Канал распространения браузера.
Используйте "chromium", чтобы включить новый режим без головы.
Используйте "chrome", "chrome-beta", "chrome-dev", "chrome-canary", "msedge", "msedge-beta", "msedge-dev" или "msedge-canary", чтобы использовать брендированные Google Chrome и Microsoft Edge.
-
setChromiumSandboxboolean (опционально)#Включить песочницу Chromium. По умолчанию
false. -
setClientCertificatesList<ClientCertificates> (опционально) Добавлено в: 1.46#-
setOriginStringТочный источник, для которого сертификат действителен. Источник включает протокол
https, имя хоста и, возможно, порт. -
setCertPathPath (опционально)Путь к файлу с сертификатом в формате PEM.
-
setCertbyte[] (опционально)Прямое значение сертификата в формате PEM.
-
setKeyPathPath (опционально)Путь к файлу с закрытым ключом в формате PEM.
-
setKeybyte[] (опционально)Прямое значение закрытого ключа в формате PEM.
-
setPfxPathPath (опционально)Путь к PFX или PKCS12 закодированному закрытому ключу и цепочке сертификатов.
-
setPfxbyte[] (опционально)Прямое значение PFX или PKCS12 закодированного закрытого ключа и цепочки сертификатов.
-
setPassphraseString (опционально)Пароль для закрытого ключа (PEM или PFX).
Аутентификация клиента TLS позволяет серверу запросить клиентский сертификат и проверить его.
Детали
Массив клиентских сертификатов для использования. Каждый объект сертификата должен иметь либо оба
certPathиkeyPath, либо одинpfxPath, или их соответствующие прямые значения (certиkey, илиpfx). Опционально, свойствоpassphraseдолжно быть предоставлено, если сертификат зашифрован. Свойствоoriginдолжно быть предоставлено с точным совпадением с источником запроса, для которого сертификат действителен.примечаниеПри использовании WebKit на macOS доступ к
localhostне будет использовать клиентские сертификаты. Вы можете сделать это, заменивlocalhostнаlocal.playwright. -
-
setColorSchemenull |enum ColorScheme { LIGHT, DARK, NO_PREFERENCE }(опционально)#Эмулирует медиа-функцию prefers-colors-scheme, поддерживаемые значения:
'light'и'dark'. См. Page.emulateMedia() для получения дополнительной информации. Передачаnullсбрасывает эмуляцию на системные настройки по умолчанию. По умолчанию'light'. -
setContrastnull |enum Contrast { NO_PREFERENCE, MORE }(опционально)#Эмулирует медиа-функцию
'prefers-contrast', поддерживаемые значения:'no-preference','more'. См. Page.emulateMedia() для получения дополнительной информации. Передачаnullсбрасывает эмуляцию на системные настройки по умолчанию. По умолчанию'no-preference'. -
setDeviceScaleFactordouble (опционально)#Укажите коэффициент масштабирования устройства (можно рассматривать как dpr). По умолчанию
1. Узнайте больше о эмуляции устройств с коэффициентом масштабирования устройства. -
setDevtoolsboolean (опционально)#УстарелоИспользуйте инструменты отладки вместо этого.
Только для Chromium Открывать ли автоматически панель инструментов разработчика для каждой вкладки. Если эта опция установлена в
true, опция setHeadless будет установлена вfalse. -
setDownloadsPathPath (опционально)#Если указано, принятые загрузки загружаются в этот каталог. В противном случае создается временный каталог, который удаляется при закрытии браузера. В любом случае загрузки удаляются, когда закрывается контекст браузера, в котором они были созданы.
-
setEnvMap<String, String> (опционально)#Укажите переменные окружения, которые будут видны браузеру. По умолчанию
process.env. -
setExecutablePathPath (опционально)#Путь к исполняемому файлу браузера, который будет запущен вместо встроенного. Если setExecutablePath является относительным путем, то он разрешается относительно текущего рабочего каталога. Обратите внимание, что Playwright работает только с встроенными Chromium, Firefox или WebKit, используйте на свой страх и риск.
-
setExtraHTTPHeadersMap<String, String> (опционально)#Объект, содержащий дополнительные HTTP-заголовки, которые будут отправлены с каждым запросом. По умолчанию нет.
-
setFirefoxUserPrefsMap<String, Object> (опционально) Добавлено в: v1.40#Пользовательские настройки Firefox. Узнайте больше о пользовательских настройках Firefox на
about:config. -
setForcedColorsnull |enum ForcedColors { ACTIVE, NONE }(опционально)#Эмулирует медиа-функцию
'forced-colors', поддерживаемые значения:'active','none'. См. Page.emulateMedia() для получения дополнительной информации. Передачаnullсбрасывает эмуляцию на системные настройки по умолчанию. По умолчанию'none'. -
setGeolocationGeolocation (опционально)# -
setHandleSIGHUPboolean (опционально)#Закрыть процесс браузера при SIGHUP. По умолчанию
true. -
setHandleSIGINTboolean (опционально)#Закрыть процесс браузера при Ctrl-C. По умолчанию
true. -
setHandleSIGTERMboolean (опционально)#Закрыть процесс браузера при SIGTERM. По умолчанию
true. -
setHasTouchboolean (опционально)#Указывает, поддерживает ли видовая область сенсорные события. По умолчанию false. Узнайте больше о мобильной эмуляции.
-
setHeadlessboolean (опционально)#Запускать ли браузер в режиме без головы. Подробнее для Chromium и Firefox. По умолчанию
true, если только опция setDevtools не установлена вtrue. -
setHttpCredentialsHttpCredentials (опционально)#-
setUsernameString -
setPasswordString -
setOriginString (опционально)Ограничить отправку http-учетных данных на конкретный источник (scheme://host:port).
-
setSendenum HttpCredentialsSend { UNAUTHORIZED, ALWAYS }(опционально)Эта опция применяется только к запросам, отправленным из соответствующего APIRequestContext, и не влияет на запросы, отправленные из браузера.
'always'- заголовокAuthorizationс учетными данными базовой аутентификации будет отправлен с каждым API-запросом.'unauthorized- учетные данные отправляются только при получении ответа 401 (Unauthorized) с заголовкомWWW-Authenticate. По умолчанию'unauthorized'.
Учетные данные для HTTP-аутентификации. Если источник не указан, имя пользователя и пароль отправляются на любые серверы при получении неавторизованных ответов.
-
-
setIgnoreAllDefaultArgsboolean (опционально) Добавлено в: v1.9#Если
true, Playwright не передает свои собственные аргументы конфигурации и использует только те, которые указаны в setArgs. Опасная опция; используйте с осторожностью. По умолчаниюfalse. -
setIgnoreDefaultArgsList<String> (опционально)#Если
true, Playwright не передает свои собственные аргументы конфигурации и использует только те, которые указаны в setArgs. Опасная опция; используйте с осторожностью. -
setIgnoreHTTPSErrorsboolean (опционально)#Игнорировать ли ошибки HTTPS при отправке сетевых запросов. По умолчанию
false. -
setIsMobileboolean (опционально)#Учитывается ли тег
meta viewportи включены ли сенсорные события. isMobile является частью устройства, поэтому вам не нужно устанавливать его вручную. По умолчаниюfalseи не поддерживается в Firefox. Узнайте больше о мобильной эмуляции. -
setJavaScriptEnabledboolean (опционально)#Включать ли JavaScript в контексте. По умолчанию
true. Узнайте больше о отключении JavaScript. -
setLocaleString (опционально)#Укажите локаль пользователя, например
en-GB,de-DEи т.д. Локаль повлияет на значениеnavigator.language, значение заголовка запросаAccept-Language, а также на правила форматирования чисел и дат. По умолчанию используется системная локаль. Узнайте больше об эмуляции в нашем руководстве по эмуляции. -
setOfflineboolean (опционально)#Эмулировать ли отключение сети. По умолчанию
false. Узнайте больше о эмуляции сети. -
setPermissionsList<String> (опционально)#Список разрешений, которые будут предоставлены всем страницам в этом контексте. См. BrowserContext.grantPermissions() для получения дополнительной информации. По умолчанию нет.
-
setProxyProxy (опционально)#-
setServerStringПрокси, который будет использоваться для всех запросов. Поддерживаются HTTP и SOCKS прокси, например
http://myproxy.com:3128илиsocks5://myproxy.com:3128. Краткая формаmyproxy.com:3128считается HTTP прокси. -
setBypassString (опционально)Опциональные домены, разделенные запятыми, для обхода прокси, например
".com, chromium.org, .domain.com". -
setUsernameString (опционально)Опциональное имя пользователя для использования, если HTTP прокси требует аутентификации.
-
setPasswordString (опционально)Опциональный пароль для использования, если HTTP прокси требует аутентификации.
Настройки сетевого прокси.
-
-
setRecordHarContentenum HarContentPolicy { OMIT, EMBED, ATTACH }(опционально)#Опциональная настройка для управления содержимым ресурсов. Если указано
omit, содержимое не сохраняется. Если указаноattach, ресурсы сохраняются как отдельные файлы, и все эти файлы архивируются вместе с файлом HAR. По умолчаниюembed, что сохраняет содержимое в файле HAR в соответствии со спецификацией HAR. -
setRecordHarModeenum HarMode { FULL, MINIMAL }(опционально)#При установке в
minimalзаписывается только информация, необходимая для маршрутизации из HAR. Это исключает размеры, время, страницы, куки, безопасность и другие типы информации HAR, которые не используются при воспроизведении из HAR. По умолчаниюfull. -
setRecordHarOmitContentboolean (опционально)#Опциональная настройка для управления тем, следует ли исключать содержимое запроса из HAR. По умолчанию
false. -
setRecordHarPathPath (опционально)#Включает запись HAR для всех страниц в указанный файл HAR на файловой системе. Если не указано, HAR не записывается. Убедитесь, что вызвали BrowserContext.close(), чтобы HAR был сохранен.
-
setRecordVideoDirPath (опционально)#Включает запись видео для всех страниц в указанный каталог. Если не указано, видео не записываются. Убедитесь, что вызвали BrowserContext.close(), чтобы видео были сохранены.
-
setRecordVideoSizeRecordVideoSize (опционально)#Размеры записанных видео. Если не указано, размер будет равен
viewport, уменьшенному для соответствия 800x800. Еслиviewportне настроен явно, размер видео по умолчанию составляет 800x450. Фактическое изображение каждой страницы будет уменьшено, если необходимо, чтобы соответствовать указанному размеру. -
setReducedMotionnull |enum ReducedMotion { REDUCE, NO_PREFERENCE }(опционально)#Эмулирует медиа-функцию
'prefers-reduced-motion', поддерживаемые значения:'reduce','no-preference'. См. Page.emulateMedia() для получения дополнительной информации. Передачаnullсбрасывает эмуляцию на системные настройки по умолчанию. По умолчанию'no-preference'. -
setScreenSizeScreenSize (опционально)#Эмулирует постоянный размер экрана окна, доступный внутри веб-страницы через
window.screen. Используется только при установке setViewportSize. -
setServiceWorkersenum ServiceWorkerPolicy { ALLOW, BLOCK }(опционально)#Разрешать ли сайтам регистрировать сервис-воркеры. По умолчанию
'allow'.'allow': Сервис-воркеры могут быть зарегистрированы.'block': Playwright будет блокировать всю регистрацию сервис-воркеров.
-
setSlowModouble (опционально)#Замедляет операции Playwright на указанное количество миллисекунд. Полезно, чтобы увидеть, что происходит.
-
setStrictSelectorsboolean (опционально)#Если установлено в true, включает режим строгих селекторов для этого контекста. В режиме строгих селекторов все операции с селекторами, которые подразумевают единственный целевой элемент DOM, будут вызывать ошибку, если более одного элемента соответствует селектору. Эта опция не влияет на любые API локаторов (локаторы всегда строгие). По умолчанию
false. См. Locator, чтобы узнать больше о строгом режиме. -
setTimeoutdouble (опционально)#Максимальное время в миллисекундах для ожидания запуска экземпляра браузера. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить таймаут. -
setTimezoneIdString (опционально)#Изменяет часовой пояс контекста. См. metaZones.txt ICU для списка поддерживаемых идентификаторов часовых поясов. По умолчанию используется системный часовой пояс.
-
setTracesDirPath (опционально)#Если указано, трассировки сохраняются в этот каталог.
-
setUserAgentString (опционально)#Специфический пользовательский агент для использования в этом контексте.
-
setViewportSizenull | ViewportSize (опционально)#Эмулирует постоянный видовой экран для каждой страницы. По умолчанию используется видовой экран 1280x720. Используйте
null, чтобы отключить постоянную эмуляцию видового экрана. Узнайте больше о эмуляции видового экрана.примечаниеЗначение
nullисключает использование предустановок по умолчанию, делает видовой экран зависимым от размера окна хоста, определяемого операционной системой. Это делает выполнение тестов недетерминированным.
-
Возвращает
name
Добавлено до v1.9Возвращает имя браузера. Например: 'chromium', 'webkit' или 'firefox'.
Использование
BrowserType.name();
Возвращает