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");
// other actions...
browser.close();
}
}
}
メソッド
connect
v1.9より前に追加このメソッドは、Node.jsのBrowserType.launchServer
を介して作成された既存のブラウザインスタンスにPlaywrightをアタッチします。
接続するPlaywrightインスタンスのメジャーバージョンとマイナーバージョンは、ブラウザを起動するPlaywrightのバージョンと一致する必要があります(1.2.3 → 1.2.xと互換性があります)。
使用方法
BrowserType.connect(wsEndpoint);
BrowserType.connect(wsEndpoint, options);
引数
-
wsEndpoint
String追加バージョン: v1.10#接続するPlaywrightブラウザのWebSocketエンドポイント。このエンドポイントは
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>
はローカルループバックインターフェースに一致します: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このメソッドは、Chrome DevTools Protocolを使用して既存のブラウザインスタンスにPlaywrightをアタッチします。
デフォルトのブラウザコンテキストはBrowser.contexts()を介してアクセスできます。
Chrome DevTools Protocolを介した接続は、Chromiumベースのブラウザでのみサポートされています。
この接続は、BrowserType.connect()を介したPlaywrightプロトコル接続よりも忠実度が著しく低いです。問題が発生している場合や高度な機能を使用しようとしている場合は、おそらくBrowserType.connect()を使用したいと思うでしょう。
使用方法
Browser browser = playwright.chromium().connectOverCDP("https://:9222");
BrowserContext defaultContext = browser.contexts().get(0);
Page page = defaultContext.pages().get(0);
引数
-
endpointURL
String追加バージョン: v1.11#接続するCDP WebSocketエンドポイントまたはHTTP URL。例:
https://:9222/
またはws://127.0.0.1:9222/devtools/browser/387adf4c-243f-4051-a181-46798f4a46f4
。 -
options
BrowserType.ConnectOverCDPOptions
(任意)
戻り値
executablePath
v1.9より前に追加Playwrightがバンドルされたブラウザ実行可能ファイルを見つけることを期待するパス。
使用方法
BrowserType.executablePath();
戻り値
launch
v1.9より前に追加ブラウザインスタンスを返します。
使用方法
デフォルトの引数から--mute-audio
を除外するには、setIgnoreDefaultArgsを使用できます。
// Or "firefox" or "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
(任意)-
警告
カスタムブラウザ引数を使用すると、Playwrightの機能が損なわれる可能性があるため、自己責任で使用してください。
ブラウザインスタンスに渡す追加の引数。Chromiumフラグのリストはこちらで見つけることができます。
-
ブラウザ配布チャネル。
新しいヘッドレスモードをオプトインするには「chromium」を使用してください。ブラウザについて
ブランド化されたGoogle ChromeおよびMicrosoft Edgeを使用するには、「chrome」、「chrome-beta」、「chrome-dev」、「chrome-canary」、「msedge」、「msedge-beta」、「msedge-dev」、または「msedge-canary」を使用してください。
-
setChromiumSandbox
boolean (任意)#Chromiumサンドボックスを有効にします。デフォルトは
false
です。 -
非推奨
デバッグツールの代わりに利用してください。
Chromiumのみ 各タブで開発者ツールパネルを自動的に開くかどうか。このオプションが
true
の場合、setHeadlessオプションはfalse
に設定されます。 -
指定した場合、受け入れられたダウンロードはこのディレクトリにダウンロードされます。そうでない場合、一時ディレクトリが作成され、ブラウザが閉じられると削除されます。どちらの場合も、ダウンロードは作成されたブラウザコンテキストが閉じられると削除されます。
-
setEnv
Map<String, String> (任意)#ブラウザに表示される環境変数を指定します。デフォルトは
process.env
です。 -
バンドルされたものを使用する代わりに実行するブラウザ実行可能ファイルのパス。setExecutablePathが相対パスの場合、現在の作業ディレクトリからの相対パスとして解決されます。PlaywrightはバンドルされたChromium、Firefox、WebKitでのみ動作することに注意してください。ご自身の責任でご使用ください。
-
setFirefoxUserPrefs
Map<String, Object> (任意)#Firefoxユーザー設定。Firefoxユーザー設定の詳細については、
about:config
を参照してください。 -
SIGHUPでブラウザプロセスを閉じます。デフォルトは
true
です。 -
Ctrl-Cでブラウザプロセスを閉じます。デフォルトは
true
です。 -
setHandleSIGTERM
boolean (任意)#SIGTERMでブラウザプロセスを閉じます。デフォルトは
true
です。 -
ブラウザをヘッドレスモードで実行するかどうか。詳細についてはChromiumとFirefoxを参照してください。setDevtoolsオプションが
true
でない限り、デフォルトは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プロキシで認証が必要な場合に使用する任意のパスワード。
ネットワークプロキシ設定。
-
-
Playwrightの操作を指定されたミリ秒だけ遅くします。何が起こっているかを確認するのに役立ちます。
-
ブラウザインスタンスの起動を待機する最大時間(ミリ秒)。デフォルトは
30000
(30秒)。タイムアウトを無効にするには0
を渡します。 -
指定した場合、トレースはこのディレクトリに保存されます。
-
戻り値
launchPersistentContext
v1.9より前に追加永続的なブラウザコンテキストインスタンスを返します。
userDataDirに配置された永続ストレージを使用するブラウザを起動し、唯一のコンテキストを返します。このコンテキストを閉じると、ブラウザも自動的に閉じられます。
使用方法
BrowserType.launchPersistentContext(userDataDir);
BrowserType.launchPersistentContext(userDataDir, options);
引数
-
Cookieやローカルストレージなどのブラウザセッションデータを保存するユーザーデータディレクトリへのパス。一時ディレクトリを作成するには空の文字列を渡します。
詳細についてはChromiumおよびFirefoxを参照してください。Chromiumのユーザーデータディレクトリは、
chrome://version
で表示される「Profile Path」の親ディレクトリです。ブラウザは、同じユーザーデータディレクトリで複数のインスタンスを起動することを許可しないことに注意してください。
-
options
BrowserType.LaunchPersistentContextOptions
(任意)-
setAcceptDownloads
boolean (任意)#すべての添付ファイルを自動的にダウンロードするかどうか。デフォルトは
true
で、すべてのダウンロードが許可されます。 -
警告
カスタムブラウザ引数を使用すると、Playwrightの機能が損なわれる可能性があるため、自己責任で使用してください。
ブラウザインスタンスに渡す追加の引数。Chromiumフラグのリストはこちらで見つけることができます。
-
Page.navigate()、Page.route()、Page.waitForURL()、Page.waitForRequest()、またはPage.waitForResponse()を使用する際、対応するURLを構築するために
URL()
コンストラクタを使用してベースURLを考慮します。デフォルトでは未設定です。例:- baseURL:
https://:3000
で/bar.html
に移動すると、結果はhttps://:3000/bar.html
になります。 - baseURL:
https://:3000/foo/
で./bar.html
に移動すると、結果はhttps://:3000/foo/bar.html
になります。 - baseURL:
https://:3000/foo
(末尾にスラッシュなし)で./bar.html
に移動すると、結果はhttps://:3000/bar.html
になります。
- baseURL:
-
ページのコンテンツセキュリティポリシーのバイパスを切り替えます。デフォルトは
false
です。 -
ブラウザ配布チャネル。
新しいヘッドレスモードをオプトインするには「chromium」を使用してください。ブラウザについて
ブランド化されたGoogle ChromeおよびMicrosoft Edgeを使用するには、「chrome」、「chrome-beta」、「chrome-dev」、「chrome-canary」、「msedge」、「msedge-beta」、「msedge-dev」、または「msedge-canary」を使用してください。
-
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
プロパティは、証明書が有効なリクエストオリジンと完全に一致するように提供する必要があります。注意macOSでWebKitを使用する場合、
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
です。デバイススケールファクターによるデバイスエミュレーションについて詳しくはこちら。 -
非推奨
デバッグツールの代わりに利用してください。
Chromiumのみ 各タブで開発者ツールパネルを自動的に開くかどうか。このオプションが
true
の場合、setHeadlessオプションはfalse
に設定されます。 -
指定した場合、受け入れられたダウンロードはこのディレクトリにダウンロードされます。そうでない場合、一時ディレクトリが作成され、ブラウザが閉じられると削除されます。どちらの場合も、ダウンロードは作成されたブラウザコンテキストが閉じられると削除されます。
-
setEnv
Map<String, String> (任意)#ブラウザに表示される環境変数を指定します。デフォルトは
process.env
です。 -
バンドルされたものを使用する代わりに実行するブラウザ実行可能ファイルのパス。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 (任意)# -
SIGHUPでブラウザプロセスを閉じます。デフォルトは
true
です。 -
Ctrl-Cでブラウザプロセスを閉じます。デフォルトは
true
です。 -
setHandleSIGTERM
boolean (任意)#SIGTERMでブラウザプロセスを閉じます。デフォルトは
true
です。 -
ビューポートがタッチイベントをサポートするかどうかを指定します。デフォルトはfalseです。モバイルエミュレーションについて詳しくはこちら。
-
ブラウザをヘッドレスモードで実行するかどうか。詳細についてはChromiumとFirefoxを参照してください。setDevtoolsオプションが
true
でない限り、デフォルトはtrue
です。 -
setHttpCredentials
HttpCredentials (任意)#-
setUsername
String -
setPassword
String -
setOrigin
String (任意)特定のオリジン(scheme://host:port).
-
setSend
enum HttpCredentialsSend { UNAUTHORIZED, ALWAYS }
(任意)このオプションは、対応するAPIRequestContextから送信されたリクエストにのみ適用され、ブラウザから送信されたリクエストには影響しません。
'always'
- 各APIリクエストとともに基本認証資格情報を含むAuthorization
ヘッダーが送信されます。'unauthorized
- 資格情報は、WWW-Authenticate
ヘッダー付きの401(Unauthorized)応答が受信された場合にのみ送信されます。デフォルトは'unauthorized'
です。
HTTP認証用の認証情報。オリジンが指定されていない場合、ユーザー名とパスワードは不正な応答があった場合にすべてのサーバーに送信されます。
-
-
setIgnoreAllDefaultArgs
boolean (任意)追加バージョン: v1.9#true
の場合、Playwrightは自身の構成引数を渡さず、setArgsからのもののみを使用します。危険なオプションですので、注意して使用してください。デフォルトはfalse
です。 -
setIgnoreDefaultArgs
List<String> (任意)#true
の場合、Playwrightは自身の構成引数を渡さず、setArgsからのもののみを使用します。危険なオプションですので、注意して使用してください。 -
setIgnoreHTTPSErrors
boolean (任意)#ネットワークリクエストを送信する際にHTTPSエラーを無視するかどうか。デフォルトは
false
です。 -
meta viewport
タグが考慮され、タッチイベントが有効になるかどうか。isMobileはデバイスの一部なので、手動で設定する必要はありません。デフォルトはfalse
で、Firefoxではサポートされていません。モバイルエミュレーションについて詳しくはこちら。 -
setJavaScriptEnabled
boolean (任意)#コンテキストでJavaScriptを有効にするかどうか。デフォルトは
true
です。JavaScriptの無効化について詳しくはこちら。 -
ユーザーのロケールを指定します。例:
en-GB
、de-DE
など。ロケールはnavigator.language
の値、Accept-Language
リクエストヘッダーの値、および数値と日付のフォーマットルールに影響します。デフォルトはシステムデフォルトのロケールです。エミュレーションガイドでエミュレーションの詳細をご覧ください。 -
ネットワークをオフラインとしてエミュレートするかどうか。デフォルトは
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ファイルと一緒にアーカイブされます。HAR仕様に従い、コンテンツをHARファイル内にインラインで保存するembed
がデフォルトです。 -
setRecordHarMode
enum HarMode { FULL, MINIMAL }
(任意)#minimal
に設定すると、HARからのルーティングに必要な情報のみを記録します。これにより、HARからリプレイする際に使用されないサイズ、タイミング、ページ、Cookie、セキュリティ、その他の種類のHAR情報は省略されます。デフォルトはfull
です。 -
setRecordHarOmitContent
boolean (任意)#HARからリクエストコンテンツを省略するかどうかを制御する任意のオプション。デフォルトは
false
です。 -
すべてのページについて、指定されたファイルシステム上のHARファイルへのHAR記録を有効にします。指定しない場合、HARは記録されません。HARを保存するには、BrowserContext.close()を呼び出すことを確認してください。
-
指定されたディレクトリへのすべてのページのビデオ記録を有効にします。指定しない場合、ビデオは記録されません。ビデオを保存するには、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 }
(任意)#サイトがService Workerを登録することを許可するかどうか。デフォルトは
'allow'
です。'allow'
: Service Workerを登録できます。'block'
: PlaywrightはService Workerのすべての登録をブロックします。
-
Playwrightの操作を指定されたミリ秒だけ遅くします。何が起こっているかを確認するのに役立ちます。
-
setStrictSelectors
boolean (任意)#true
に設定すると、このコンテキストに対して厳密セレクターモードを有効にします。厳密セレクターモードでは、単一のターゲットDOM要素を意味するセレクターに対するすべての操作は、複数の要素がセレクターに一致する場合にエラーをスローします。このオプションはLocator APIには影響しません(Locatorは常に厳密です)。デフォルトはfalse
です。厳密モードの詳細についてはLocatorを参照してください。 -
ブラウザインスタンスの起動を待機する最大時間(ミリ秒)。デフォルトは
30000
(30秒)。タイムアウトを無効にするには0
を渡します。 -
コンテキストのタイムゾーンを変更します。サポートされているタイムゾーンIDのリストについては、ICUのmetaZones.txtを参照してください。デフォルトはシステムタイムゾーンです。
-
指定した場合、トレースはこのディレクトリに保存されます。
-
このコンテキストで使用する特定のユーザーエージェント。
-
setViewportSize
null | ViewportSize (任意)#各ページで一貫したビューポートをエミュレートします。デフォルトは1280x720のビューポートです。一貫したビューポートのエミュレーションを無効にするには
null
を使用します。ビューポートエミュレーションについて詳しくはこちら。注意null
値はデフォルトのプリセットをオプトアウトし、ビューポートをオペレーティングシステムによって定義されたホストウィンドウサイズに依存させます。これにより、テストの実行が非決定論的になります。
-
戻り値
name
v1.9より前に追加ブラウザ名を返します。例: 'chromium'
、'webkit'
、または'firefox'
。
使用方法
BrowserType.name();
戻り値