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);
Аргументы
-
wsEndpoint
String Добавлено в: v1.10#Веб-сокетный эндпоинт браузера Playwright для подключения. Вы получаете этот эндпоинт через
BrowserServer.wsEndpoint
. -
options
BrowserType.ConnectOptions
(опционально)-
setExposeNetwork
String (опционально) Добавлено в: 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.
- Шаблон имени хоста, например:
-
setHeaders
Map<String, String> (опционально) Добавлено в: v1.11#Дополнительные HTTP-заголовки, которые будут отправлены с запросом на подключение веб-сокета. Опционально.
-
setSlowMo
double (опционально) Добавлено в: v1.10#Замедляет операции Playwright на указанное количество миллисекунд. Полезно, чтобы увидеть, что происходит. По умолчанию 0.
-
setTimeout
double (опционально) Добавлено в: 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);
Аргументы
-
endpointURL
String Добавлено в: v1.11#Веб-сокетный эндпоинт CDP или http URL для подключения. Например,
http://localhost:9222/
илиws://127.0.0.1:9222/devtools/browser/387adf4c-243f-4051-a181-46798f4a46f4
. -
options
BrowserType.ConnectOverCDPOptions
(опционально)-
setHeaders
Map<String, String> (опционально) Добавлено в: v1.11#Дополнительные HTTP-заголовки, которые будут отправлены с запросом на подключение. Опционально.
-
setSlowMo
double (опционально) Добавлено в: v1.11#Замедляет операции Playwright на указанное количество миллисекунд. Полезно, чтобы увидеть, что происходит. По умолчанию 0.
-
setTimeout
double (опционально) Добавлено в: 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.
Аргументы
options
BrowserType.LaunchOptions
(опционально)-
setArgs
List<String> (опционально)#warningИспользуйте пользовательские аргументы браузера на свой страх и риск, так как некоторые из них могут нарушить функциональность Playwright.
Дополнительные аргументы для передачи экземпляру браузера. Список флагов Chromium можно найти здесь.
-
setChannel
String (опционально)#Канал распространения браузера.
Используйте "chromium", чтобы включить новый режим без головы.
Используйте "chrome", "chrome-beta", "chrome-dev", "chrome-canary", "msedge", "msedge-beta", "msedge-dev" или "msedge-canary", чтобы использовать брендированные Google Chrome и Microsoft Edge.
-
setChromiumSandbox
boolean (опционально)#Включить песочницу Chromium. По умолчанию
false
. -
setDevtools
boolean (опционально)#УстарелоИспользуйте инструменты отладки вместо этого.
Только для Chromium Открывать ли автоматически панель инструментов разработчика для каждой вкладки. Если эта опция установлена в
true
, опция setHeadless будет установлена вfalse
. -
setDownloadsPath
Path (опционально)#Если указано, принятые загрузки загружаются в этот каталог. В противном случае создается временный каталог, который удаляется при закрытии браузера. В любом случае загрузки удаляются, когда закрывается контекст браузера, в котором они были созданы.
-
setEnv
Map<String, String> (опционально)#Укажите переменные окружения, которые будут видны браузеру. По умолчанию
process.env
. -
setExecutablePath
Path (опционально)#Путь к исполняемому файлу браузера, который будет запущен вместо встроенного. Если setExecutablePath является относительным путем, то он разрешается относительно текущего рабочего каталога. Обратите внимание, что Playwright работает только с встроенными Chromium, Firefox или WebKit, используйте на свой страх и риск.
-
setFirefoxUserPrefs
Map<String, Object> (опционально)#Пользовательские настройки Firefox. Узнайте больше о пользовательских настройках Firefox на
about:config
. -
setHandleSIGHUP
boolean (опционально)#Закрыть процесс браузера при SIGHUP. По умолчанию
true
. -
setHandleSIGINT
boolean (опционально)#Закрыть процесс браузера при Ctrl-C. По умолчанию
true
. -
setHandleSIGTERM
boolean (опционально)#Закрыть процесс браузера при SIGTERM. По умолчанию
true
. -
setHeadless
boolean (опционально)#Запускать ли браузер в режиме без головы. Подробнее для Chromium и Firefox. По умолчанию
true
, если только опция setDevtools не установлена вtrue
. -
setIgnoreAllDefaultArgs
boolean (опционально) Добавлено в: v1.9#Если
true
, Playwright не передает свои собственные аргументы конфигурации и использует только те, которые указаны в setArgs. Опасная опция; используйте с осторожностью. По умолчаниюfalse
. -
setIgnoreDefaultArgs
List<String> (опционально)#Если
true
, Playwright не передает свои собственные аргументы конфигурации и использует только те, которые указаны в setArgs. Опасная опция; используйте с осторожностью. -
setProxy
Proxy (опционально)#-
setServer
StringПрокси, который будет использоваться для всех запросов. Поддерживаются HTTP и SOCKS прокси, например
http://myproxy.com:3128
илиsocks5://myproxy.com:3128
. Краткая формаmyproxy.com:3128
считается HTTP прокси. -
setBypass
String (опционально)Опциональные домены, разделенные запятыми, для обхода прокси, например
".com, chromium.org, .domain.com"
. -
setUsername
String (опционально)Опциональное имя пользователя для использования, если HTTP прокси требует аутентификации.
-
setPassword
String (опционально)Опциональный пароль для использования, если HTTP прокси требует аутентификации.
Настройки сетевого прокси.
-
-
setSlowMo
double (опционально)#Замедляет операции Playwright на указанное количество миллисекунд. Полезно, чтобы увидеть, что происходит.
-
setTimeout
double (опционально)#Максимальное время в миллисекундах для ожидания запуска экземпляра браузера. По умолчанию
30000
(30 секунд). Передайте0
, чтобы отключить таймаут. -
setTracesDir
Path (опционально)#Если указано, трассировки сохраняются в этот каталог.
-
Возвращает
launchPersistentContext
Добавлено до v1.9Возвращает экземпляр постоянного контекста браузера.
Запускает браузер, который использует постоянное хранилище, расположенное в userDataDir, и возвращает единственный контекст. Закрытие этого контекста автоматически закроет браузер.
Использование
BrowserType.launchPersistentContext(userDataDir);
BrowserType.launchPersistentContext(userDataDir, options);
Аргументы
-
Путь к каталогу пользовательских данных, который хранит данные сессии браузера, такие как куки и локальное хранилище. Подробнее для Chromium и Firefox. Обратите внимание, что каталог пользовательских данных Chromium является родительским каталогом "Пути профиля", видимого на
chrome://version
. Передайте пустую строку, чтобы использовать временный каталог. -
options
BrowserType.LaunchPersistentContextOptions
(опционально)-
setAcceptDownloads
boolean (опционально)#Автоматически загружать все вложения. По умолчанию
true
, где все загрузки принимаются. -
setArgs
List<String> (опционально)#warningИспользуйте пользовательские аргументы браузера на свой страх и риск, так как некоторые из них могут нарушить функциональность Playwright.
Дополнительные аргументы для передачи экземпляру браузера. Список флагов Chromium можно найти здесь.
-
setBaseURL
String (опционально)#При использовании 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:
-
setBypassCSP
boolean (опционально)#Переключает обход политики безопасности контента страницы. По умолчанию
false
. -
setChannel
String (опционально)#Канал распространения браузера.
Используйте "chromium", чтобы включить новый режим без головы.
Используйте "chrome", "chrome-beta", "chrome-dev", "chrome-canary", "msedge", "msedge-beta", "msedge-dev" или "msedge-canary", чтобы использовать брендированные Google Chrome и Microsoft Edge.
-
setChromiumSandbox
boolean (опционально)#Включить песочницу Chromium. По умолчанию
false
. -
setClientCertificates
List<ClientCertificates> (опционально) Добавлено в: 1.46#-
setOrigin
StringТочный источник, для которого сертификат действителен. Источник включает протокол
https
, имя хоста и, возможно, порт. -
setCertPath
Path (опционально)Путь к файлу с сертификатом в формате PEM.
-
setCert
byte[] (опционально)Прямое значение сертификата в формате PEM.
-
setKeyPath
Path (опционально)Путь к файлу с закрытым ключом в формате PEM.
-
setKey
byte[] (опционально)Прямое значение закрытого ключа в формате PEM.
-
setPfxPath
Path (опционально)Путь к PFX или PKCS12 закодированному закрытому ключу и цепочке сертификатов.
-
setPfx
byte[] (опционально)Прямое значение PFX или PKCS12 закодированного закрытого ключа и цепочки сертификатов.
-
setPassphrase
String (опционально)Пароль для закрытого ключа (PEM или PFX).
Аутентификация клиента TLS позволяет серверу запросить клиентский сертификат и проверить его.
Детали
Массив клиентских сертификатов для использования. Каждый объект сертификата должен иметь либо оба
certPath
иkeyPath
, либо одинpfxPath
, или их соответствующие прямые значения (cert
иkey
, илиpfx
). Опционально, свойствоpassphrase
должно быть предоставлено, если сертификат зашифрован. Свойствоorigin
должно быть предоставлено с точным совпадением с источником запроса, для которого сертификат действителен.примечаниеПри использовании WebKit на macOS доступ к
localhost
не будет использовать клиентские сертификаты. Вы можете сделать это, заменивlocalhost
наlocal.playwright
. -
-
setColorScheme
null |enum ColorScheme { LIGHT, DARK, NO_PREFERENCE }
(опционально)#Эмулирует медиа-функцию prefers-colors-scheme, поддерживаемые значения:
'light'
и'dark'
. См. Page.emulateMedia() для получения дополнительной информации. Передачаnull
сбрасывает эмуляцию на системные настройки по умолчанию. По умолчанию'light'
. -
setContrast
null |enum Contrast { NO_PREFERENCE, MORE }
(опционально)#Эмулирует медиа-функцию
'prefers-contrast'
, поддерживаемые значения:'no-preference'
,'more'
. См. Page.emulateMedia() для получения дополнительной информации. Передачаnull
сбрасывает эмуляцию на системные настройки по умолчанию. По умолчанию'no-preference'
. -
setDeviceScaleFactor
double (опционально)#Укажите коэффициент масштабирования устройства (можно рассматривать как dpr). По умолчанию
1
. Узнайте больше о эмуляции устройств с коэффициентом масштабирования устройства. -
setDevtools
boolean (опционально)#УстарелоИспользуйте инструменты отладки вместо этого.
Только для Chromium Открывать ли автоматически панель инструментов разработчика для каждой вкладки. Если эта опция установлена в
true
, опция setHeadless будет установлена вfalse
. -
setDownloadsPath
Path (опционально)#Если указано, принятые загрузки загружаются в этот каталог. В противном случае создается временный каталог, который удаляется при закрытии браузера. В любом случае загрузки удаляются, когда закрывается контекст браузера, в котором они были созданы.
-
setEnv
Map<String, String> (опционально)#Укажите переменные окружения, которые будут видны браузеру. По умолчанию
process.env
. -
setExecutablePath
Path (опционально)#Путь к исполняемому файлу браузера, который будет запущен вместо встроенного. Если setExecutablePath является относительным путем, то он разрешается относительно текущего рабочего каталога. Обратите внимание, что Playwright работает только с встроенными Chromium, Firefox или WebKit, используйте на свой страх и риск.
-
setExtraHTTPHeaders
Map<String, String> (опционально)#Объект, содержащий дополнительные HTTP-заголовки, которые будут отправлены с каждым запросом. По умолчанию нет.
-
setFirefoxUserPrefs
Map<String, Object> (опционально) Добавлено в: v1.40#Пользовательские настройки Firefox. Узнайте больше о пользовательских настройках Firefox на
about:config
. -
setForcedColors
null |enum ForcedColors { ACTIVE, NONE }
(опционально)#Эмулирует медиа-функцию
'forced-colors'
, поддерживаемые значения:'active'
,'none'
. См. Page.emulateMedia() для получения дополнительной информации. Передачаnull
сбрасывает эмуляцию на системные настройки по умолчанию. По умолчанию'none'
. -
setGeolocation
Geolocation (опционально)# -
setHandleSIGHUP
boolean (опционально)#Закрыть процесс браузера при SIGHUP. По умолчанию
true
. -
setHandleSIGINT
boolean (опционально)#Закрыть процесс браузера при Ctrl-C. По умолчанию
true
. -
setHandleSIGTERM
boolean (опционально)#Закрыть процесс браузера при SIGTERM. По умолчанию
true
. -
setHasTouch
boolean (опционально)#Указывает, поддерживает ли видовая область сенсорные события. По умолчанию false. Узнайте больше о мобильной эмуляции.
-
setHeadless
boolean (опционально)#Запускать ли браузер в режиме без головы. Подробнее для Chromium и Firefox. По умолчанию
true
, если только опция setDevtools не установлена вtrue
. -
setHttpCredentials
HttpCredentials (опционально)#-
setUsername
String -
setPassword
String -
setOrigin
String (опционально)Ограничить отправку http-учетных данных на конкретный источник (scheme://host:port).
-
setSend
enum HttpCredentialsSend { UNAUTHORIZED, ALWAYS }
(опционально)Эта опция применяется только к запросам, отправленным из соответствующего APIRequestContext, и не влияет на запросы, отправленные из браузера.
'always'
- заголовокAuthorization
с учетными данными базовой аутентификации будет отправлен с каждым API-запросом.'unauthorized
- учетные данные отправляются только при получении ответа 401 (Unauthorized) с заголовкомWWW-Authenticate
. По умолчанию'unauthorized'
.
Учетные данные для HTTP-аутентификации. Если источник не указан, имя пользователя и пароль отправляются на любые серверы при получении неавторизованных ответов.
-
-
setIgnoreAllDefaultArgs
boolean (опционально) Добавлено в: v1.9#Если
true
, Playwright не передает свои собственные аргументы конфигурации и использует только те, которые указаны в setArgs. Опасная опция; используйте с осторожностью. По умолчаниюfalse
. -
setIgnoreDefaultArgs
List<String> (опционально)#Если
true
, Playwright не передает свои собственные аргументы конфигурации и использует только те, которые указаны в setArgs. Опасная опция; используйте с осторожностью. -
setIgnoreHTTPSErrors
boolean (опционально)#Игнорировать ли ошибки HTTPS при отправке сетевых запросов. По умолчанию
false
. -
setIsMobile
boolean (опционально)#Учитывается ли тег
meta viewport
и включены ли сенсорные события. isMobile является частью устройства, поэтому вам не нужно устанавливать его вручную. По умолчаниюfalse
и не поддерживается в Firefox. Узнайте больше о мобильной эмуляции. -
setJavaScriptEnabled
boolean (опционально)#Включать ли JavaScript в контексте. По умолчанию
true
. Узнайте больше о отключении JavaScript. -
setLocale
String (опционально)#Укажите локаль пользователя, например
en-GB
,de-DE
и т.д. Локаль повлияет на значениеnavigator.language
, значение заголовка запросаAccept-Language
, а также на правила форматирования чисел и дат. По умолчанию используется системная локаль. Узнайте больше об эмуляции в нашем руководстве по эмуляции. -
setOffline
boolean (опционально)#Эмулировать ли отключение сети. По умолчанию
false
. Узнайте больше о эмуляции сети. -
setPermissions
List<String> (опционально)#Список разрешений, которые будут предоставлены всем страницам в этом контексте. См. BrowserContext.grantPermissions() для получения дополнительной информации. По умолчанию нет.
-
setProxy
Proxy (опционально)#-
setServer
StringПрокси, который будет использоваться для всех запросов. Поддерживаются HTTP и SOCKS прокси, например
http://myproxy.com:3128
илиsocks5://myproxy.com:3128
. Краткая формаmyproxy.com:3128
считается HTTP прокси. -
setBypass
String (опционально)Опциональные домены, разделенные запятыми, для обхода прокси, например
".com, chromium.org, .domain.com"
. -
setUsername
String (опционально)Опциональное имя пользователя для использования, если HTTP прокси требует аутентификации.
-
setPassword
String (опционально)Опциональный пароль для использования, если HTTP прокси требует аутентификации.
Настройки сетевого прокси.
-
-
setRecordHarContent
enum HarContentPolicy { OMIT, EMBED, ATTACH }
(опционально)#Опциональная настройка для управления содержимым ресурсов. Если указано
omit
, содержимое не сохраняется. Если указаноattach
, ресурсы сохраняются как отдельные файлы, и все эти файлы архивируются вместе с файлом HAR. По умолчаниюembed
, что сохраняет содержимое в файле HAR в соответствии со спецификацией HAR. -
setRecordHarMode
enum HarMode { FULL, MINIMAL }
(опционально)#При установке в
minimal
записывается только информация, необходимая для маршрутизации из HAR. Это исключает размеры, время, страницы, куки, безопасность и другие типы информации HAR, которые не используются при воспроизведении из HAR. По умолчаниюfull
. -
setRecordHarOmitContent
boolean (опционально)#Опциональная настройка для управления тем, следует ли исключать содержимое запроса из HAR. По умолчанию
false
. -
setRecordHarPath
Path (опционально)#Включает запись HAR для всех страниц в указанный файл HAR на файловой системе. Если не указано, HAR не записывается. Убедитесь, что вызвали BrowserContext.close(), чтобы HAR был сохранен.
-
setRecordVideoDir
Path (опционально)#Включает запись видео для всех страниц в указанный каталог. Если не указано, видео не записываются. Убедитесь, что вызвали BrowserContext.close(), чтобы видео были сохранены.
-
setRecordVideoSize
RecordVideoSize (опционально)#Размеры записанных видео. Если не указано, размер будет равен
viewport
, уменьшенному для соответствия 800x800. Еслиviewport
не настроен явно, размер видео по умолчанию составляет 800x450. Фактическое изображение каждой страницы будет уменьшено, если необходимо, чтобы соответствовать указанному размеру. -
setReducedMotion
null |enum ReducedMotion { REDUCE, NO_PREFERENCE }
(опционально)#Эмулирует медиа-функцию
'prefers-reduced-motion'
, поддерживаемые значения:'reduce'
,'no-preference'
. См. Page.emulateMedia() для получения дополнительной информации. Передачаnull
сбрасывает эмуляцию на системные настройки по умолчанию. По умолчанию'no-preference'
. -
setScreenSize
ScreenSize (опционально)#Эмулирует постоянный размер экрана окна, доступный внутри веб-страницы через
window.screen
. Используется только при установке setViewportSize. -
setServiceWorkers
enum ServiceWorkerPolicy { ALLOW, BLOCK }
(опционально)#Разрешать ли сайтам регистрировать сервис-воркеры. По умолчанию
'allow'
.'allow'
: Сервис-воркеры могут быть зарегистрированы.'block'
: Playwright будет блокировать всю регистрацию сервис-воркеров.
-
setSlowMo
double (опционально)#Замедляет операции Playwright на указанное количество миллисекунд. Полезно, чтобы увидеть, что происходит.
-
setStrictSelectors
boolean (опционально)#Если установлено в true, включает режим строгих селекторов для этого контекста. В режиме строгих селекторов все операции с селекторами, которые подразумевают единственный целевой элемент DOM, будут вызывать ошибку, если более одного элемента соответствует селектору. Эта опция не влияет на любые API локаторов (локаторы всегда строгие). По умолчанию
false
. См. Locator, чтобы узнать больше о строгом режиме. -
setTimeout
double (опционально)#Максимальное время в миллисекундах для ожидания запуска экземпляра браузера. По умолчанию
30000
(30 секунд). Передайте0
, чтобы отключить таймаут. -
setTimezoneId
String (опционально)#Изменяет часовой пояс контекста. См. metaZones.txt ICU для списка поддерживаемых идентификаторов часовых поясов. По умолчанию используется системный часовой пояс.
-
setTracesDir
Path (опционально)#Если указано, трассировки сохраняются в этот каталог.
-
setUserAgent
String (опционально)#Специфический пользовательский агент для использования в этом контексте.
-
setViewportSize
null | ViewportSize (опционально)#Эмулирует постоянный видовой экран для каждой страницы. По умолчанию используется видовой экран 1280x720. Используйте
null
, чтобы отключить постоянную эмуляцию видового экрана. Узнайте больше о эмуляции видового экрана.примечаниеЗначение
null
исключает использование предустановок по умолчанию, делает видовой экран зависимым от размера окна хоста, определяемого операционной системой. Это делает выполнение тестов недетерминированным.
-
Возвращает
name
Добавлено до v1.9Возвращает имя браузера. Например: 'chromium'
, 'webkit'
или 'firefox'
.
Использование
BrowserType.name();
Возвращает