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);
引数
-
wsEndpointString追加バージョン: v1.10#接続するPlaywrightブラウザのwebsocketエンドポイント。このエンドポイントは
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>:localhost,*.localhost,127.0.0.1,[::1]。
いくつかの一般的な例
- すべてのネットワークを公開する
"*"。 - localhostネットワークを公開する
"<loopback>"。 - テスト/ステージングデプロイメントとlocalhostを公開する
"*.test.internal-domain,*.staging.internal-domain,<loopback>"。
- ホスト名パターン。例:
-
setHeadersMap<String, String> (任意)追加されたバージョン: v1.11#Webソケット接続リクエストと共に送信される追加のHTTPヘッダー。オプション。
-
setSlowModouble (任意)追加バージョン: v1.10#指定されたミリ秒数だけPlaywrightの操作を遅くします。何が起こっているかを確認するのに便利です。デフォルトは0です。
-
setTimeoutdouble (オプション)追加バージョン: 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);
引数
-
endpointURLString追加されたバージョン: v1.11#接続するCDP websocketエンドポイントまたはhttp url。例:
https://:9222/またはws://127.0.0.1:9222/devtools/browser/387adf4c-243f-4051-a181-46798f4a46f4。 -
optionsBrowserType.ConnectOverCDPOptions(任意)
戻り値
executablePath
v1.9より前に追加Playwrightがバンドルされたブラウザ実行ファイルを見つけると予想されるパス。
使用法
BrowserType.executablePath();
戻り値
launch
v1.9より前に追加ブラウザインスタンスを返します。
使用法
setIgnoreDefaultArgs を使用して、デフォルトの引数から --mute-audio を除外できます。
// 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ユーザー向けのいくつかの違いを説明しています。
引数
optionsBrowserType.LaunchOptions(任意)-
警告
一部のカスタムブラウザ引数はPlaywrightの機能を破壊する可能性があるため、自己責任で使用してください。
ブラウザインスタンスに渡す追加の引数。Chromiumフラグのリストはこちらで見つけることができます。
-
ブラウザ配布チャネル。
"chromium" を使用して、新しいヘッドレスモードを有効にします。
"chrome", "chrome-beta", "chrome-dev", "chrome-canary", "msedge", "msedge-beta", "msedge-dev", または "msedge-canary" を使用して、ブランド化された Google Chrome および Microsoft Edge を使用します。
-
setChromiumSandboxboolean (任意)#Chromiumサンドボックスを有効にします。デフォルトは
falseです。 -
非推奨
代わりにデバッグツールを使用してください。
Chromiumのみ 各タブで開発者ツールパネルを自動的に開くかどうか。このオプションが
trueの場合、setHeadless オプションはfalseに設定されます。 -
指定されている場合、受け入れられたダウンロードはこのディレクトリにダウンロードされます。そうでない場合、一時ディレクトリが作成され、ブラウザが閉じられると削除されます。いずれの場合も、ダウンロードは作成されたブラウザコンテキストが閉じられると削除されます。
-
setEnvMap<String, String> (任意)#ブラウザに表示される環境変数を指定します。デフォルトは
process.envです。 -
バンドルされたブラウザの代わりに実行するブラウザ実行可能ファイルへのパス。setExecutablePath が相対パスの場合、現在の作業ディレクトリを基準にして解決されます。PlaywrightはバンドルされているChromium、Firefox、またはWebKitとのみ連携することに注意してください。自己責任でご使用ください。
-
setFirefoxUserPrefsMap<String, Object> (任意)#Firefoxのユーザー設定。Firefoxのユーザー設定の詳細については、
about:configを参照してください。カスタムの
policies.jsonファイルへのパスをPLAYWRIGHT_FIREFOX_POLICIES_JSON環境変数経由で提供することもできます。 -
SIGHUPでブラウザプロセスを閉じます。デフォルトは
trueです。 -
Ctrl-Cでブラウザプロセスを閉じます。デフォルトは
trueです。 -
setHandleSIGTERMboolean (任意)#SIGTERMでブラウザプロセスを閉じます。デフォルトは
trueです。 -
ブラウザをヘッドレスモードで実行するかどうか。Chromium および Firefox の詳細についてはこちらを参照してください。setDevtools オプションが
trueでない限り、デフォルトは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プロキシが認証を必要とする場合に使用するオプションのパスワード。
ネットワークプロキシ設定。
-
-
Playwrightの操作を、指定されたミリ秒数だけ遅らせます。何が起こっているかを確認するのに役立ちます。
-
ブラウザインスタンスが起動するまで待機する最大時間(ミリ秒単位)。デフォルトは
30000(30秒)です。タイムアウトを無効にするには0を渡します。 -
指定されている場合、トレースはこのディレクトリに保存されます。
-
戻り値
launchPersistentContext
v1.9より前に追加永続的なブラウザコンテキストインスタンスを返します。
userDataDir にある永続ストレージを使用するブラウザを起動し、唯一のコンテキストを返します。このコンテキストを閉じると、ブラウザも自動的に閉じられます。
使用法
BrowserType.launchPersistentContext(userDataDir);
BrowserType.launchPersistentContext(userDataDir, options);
引数
-
クッキーやローカルストレージなどのブラウザセッションデータを保存するユーザーデータディレクトリへのパス。一時ディレクトリを作成するには空の文字列を渡します。
ChromiumおよびFirefoxの詳細。Chromiumのユーザーデータディレクトリは、
chrome://versionで表示される「プロファイルパス」の親ディレクトリです。ブラウザは同じユーザーデータディレクトリで複数のインスタンスを起動できないことに注意してください。
警告Chromium/Chrome: 最近のChromeポリシー変更により、デフォルトのChromeユーザープロファイルの自動化はサポートされていません。
userDataDirをChromeのメインの「ユーザーデータ」ディレクトリ(通常のブラウジングに使用されるプロファイル)に指定すると、ページの読み込みが失敗したり、ブラウザが終了したりする可能性があります。代わりに、独自の自動化プロファイルとして別のディレクトリ(例:空のフォルダ)を作成して使用してください。詳細については、https://developer.chrome.com/blog/remote-debugging-portを参照してください。 -
optionsBrowserType.LaunchPersistentContextOptions(任意)-
setAcceptDownloadsboolean (任意)#すべての添付ファイルを自動的にダウンロードするかどうか。デフォルトは
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" を使用して、新しいヘッドレスモードを有効にします。
"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プロパティは、証明書が有効なリクエストオリジンと正確に一致するように提供する必要があります。クライアント証明書認証は、少なくとも1つのクライアント証明書が提供された場合にのみ有効になります。サーバーから送信されたすべてのクライアント証明書を拒否したい場合は、訪問する予定のドメインのいずれとも一致しない
originを持つクライアント証明書を提供する必要があります。注macOSでWebKitを使用している場合、
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です。デバイススケールファクターによるデバイスのエミュレーションについて詳しく学ぶ。 -
非推奨
代わりにデバッグツールを使用してください。
Chromiumのみ 各タブで開発者ツールパネルを自動的に開くかどうか。このオプションが
trueの場合、setHeadless オプションはfalseに設定されます。 -
指定されている場合、受け入れられたダウンロードはこのディレクトリにダウンロードされます。そうでない場合、一時ディレクトリが作成され、ブラウザが閉じられると削除されます。いずれの場合も、ダウンロードは作成されたブラウザコンテキストが閉じられると削除されます。
-
setEnvMap<String, String> (任意)#ブラウザに表示される環境変数を指定します。デフォルトは
process.envです。 -
バンドルされたブラウザの代わりに実行するブラウザ実行可能ファイルへのパス。setExecutablePath が相対パスの場合、現在の作業ディレクトリを基準にして解決されます。PlaywrightはバンドルされているChromium、Firefox、またはWebKitとのみ連携することに注意してください。自己責任でご使用ください。
-
setExtraHTTPHeadersMap<String, String> (任意)#すべてのリクエストと一緒に送信される追加のHTTPヘッダーを含むオブジェクト。デフォルトはなし。
-
setFirefoxUserPrefsMap<String, Object> (任意)追加されたバージョン: v1.40#Firefoxのユーザー設定。Firefoxのユーザー設定の詳細については、
about:configを参照してください。カスタムの
policies.jsonファイルへのパスをPLAYWRIGHT_FIREFOX_POLICIES_JSON環境変数経由で提供することもできます。 -
setForcedColorsnull |enum ForcedColors { ACTIVE, NONE }(任意)#'forced-colors'メディア機能をエミュレートし、サポートされている値は'active','none'です。Page.emulateMedia() の詳細についてはこちらを参照してください。nullを渡すと、エミュレーションがシステムデフォルトにリセットされます。デフォルトは'none'です。 -
setGeolocationGeolocation (任意)# -
SIGHUPでブラウザプロセスを閉じます。デフォルトは
trueです。 -
Ctrl-Cでブラウザプロセスを閉じます。デフォルトは
trueです。 -
setHandleSIGTERMboolean (任意)#SIGTERMでブラウザプロセスを閉じます。デフォルトは
trueです。 -
ビューポートがタッチイベントをサポートするかどうかを指定します。デフォルトはfalseです。モバイルエミュレーションについて詳しく学ぶ。
-
ブラウザをヘッドレスモードで実行するかどうか。Chromium および Firefox の詳細についてはこちらを参照してください。setDevtools オプションが
trueでない限り、デフォルトはtrueです。 -
setHttpCredentialsHttpCredentials (任意)#-
setUsernameString -
setPasswordString -
setOriginString (任意)特定のオリジン(scheme://host:port)でのhttp資格情報の送信を制限します:ポート).
-
setSendenum HttpCredentialsSend { UNAUTHORIZED, ALWAYS }(任意)このオプションは、対応する APIRequestContext から送信されるリクエストにのみ適用され、ブラウザから送信されるリクエストには影響しません。
'always'- 基本認証資格情報を含むAuthorizationヘッダーが各APIリクエストとともに送信されます。'unauthorized'- 資格情報はWWW-Authenticateヘッダーを含む401 (Unauthorized) レスポンスが受信された場合にのみ送信されます。デフォルトは'unauthorized'です。
HTTP認証用の資格情報。オリジンが指定されていない場合、ユーザー名とパスワードは、不正な応答があった場合にすべてのサーバーに送信されます。
-
-
setIgnoreAllDefaultArgsboolean (任意)追加バージョン: v1.9#trueの場合、Playwrightは独自の構成引数を渡さず、setArgs からの引数のみを使用します。危険なオプションですので、注意して使用してください。デフォルトはfalseです。 -
setIgnoreDefaultArgsList<String> (任意)#trueの場合、Playwrightは独自の構成引数を渡さず、setArgs からの引数のみを使用します。危険なオプションですので、注意して使用してください。 -
setIgnoreHTTPSErrorsboolean (任意)#ネットワークリクエストを送信する際にHTTPSエラーを無視するかどうか。デフォルトは
falseです。 -
meta viewportタグが考慮され、タッチイベントが有効になるかどうか。isMobileはデバイスの一部であるため、手動で設定する必要はありません。デフォルトはfalseで、Firefoxではサポートされていません。モバイルエミュレーションについて詳しく学ぶ。 -
setJavaScriptEnabledboolean (任意)#コンテキストでJavaScriptを有効にするかどうか。デフォルトは
trueです。JavaScriptの無効化について詳しく学ぶ。 -
ユーザーのロケールを指定します。例えば、
en-GB,de-DEなど。ロケールはnavigator.languageの値、Accept-Languageリクエストヘッダーの値、および数値と日付の書式設定ルールに影響します。デフォルトはシステムデフォルトのロケールです。エミュレーションガイドでエミュレーションについて詳しく学ぶ。 -
ネットワークがオフラインであることをエミュレートするかどうか。デフォルトは
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ファイルとともにアーカイブされます。HAR仕様に従って、コンテンツをHARファイルにインラインで保存するembedがデフォルトです。 -
setRecordHarModeenum HarMode { FULL, MINIMAL }(任意)#minimalに設定すると、HARからのルーティングに必要な情報のみが記録されます。これにより、HARからリプレイするときに使用されないサイズ、タイミング、ページ、クッキー、セキュリティ、その他の種類のHAR情報が省略されます。デフォルトはfullです。 -
setRecordHarOmitContentboolean (任意)#HARからリクエストコンテンツを除外するかどうかを制御するオプション設定。デフォルトは
falseです。 -
すべてのページのHAR記録を、ファイルシステム上の指定されたHARファイルに有効にします。指定しない場合、HARは記録されません。HARを保存するには BrowserContext.close() を呼び出すようにしてください。
-
すべてのページのビデオ録画を指定されたディレクトリに有効にします。指定しない場合、ビデオは録画されません。ビデオを保存するには BrowserContext.close() を呼び出すようにしてください。
-
setRecordVideoSizeRecordVideoSize (任意)#記録されたビデオの寸法。指定されていない場合、サイズは800x800に収まるようにスケーリングされた
viewportと同じになります。viewportが明示的に設定されていない場合、ビデオサイズはデフォルトで800x450になります。必要に応じて、各ページの実際の画像は指定されたサイズに収まるようにスケーリングされます。 -
setReducedMotionnull |enum ReducedMotion { REDUCE, NO_PREFERENCE }(任意)#'prefers-reduced-motion'メディア機能をエミュレートし、サポートされている値は'reduce','no-preference'です。Page.emulateMedia() の詳細についてはこちらを参照してください。nullを渡すと、エミュレーションがシステムデフォルトにリセットされます。デフォルトは'no-preference'です。 -
setScreenSizeScreenSize (任意)#window.screen経由でWebページ内で利用可能な一貫したウィンドウ画面サイズをエミュレートします。setViewportSize が設定されている場合にのみ使用されます。 -
setServiceWorkersenum ServiceWorkerPolicy { ALLOW, BLOCK }(任意)#サイトがサービスワーカーを登録することを許可するかどうか。デフォルトは
'allow'です。'allow': サービスワーカーを登録できます。'block': Playwrightはすべてのサービスワーカーの登録をブロックします。
-
Playwrightの操作を、指定されたミリ秒数だけ遅らせます。何が起こっているかを確認するのに役立ちます。
-
setStrictSelectorsboolean (任意)#trueに設定すると、このコンテキストで厳密セレクターモードが有効になります。厳密セレクターモードでは、単一のターゲットDOM要素を意味するセレクターに対するすべての操作は、複数の要素がセレクターに一致すると例外をスローします。このオプションは Locator API には影響しません(ロケーターは常に厳密です)。デフォルトはfalseです。厳密モードの詳細については Locator を参照してください。 -
ブラウザインスタンスが起動するまで待機する最大時間(ミリ秒単位)。デフォルトは
30000(30秒)です。タイムアウトを無効にするには0を渡します。 -
コンテキストのタイムゾーンを変更します。サポートされているタイムゾーンIDのリストについては、ICUのmetaZones.txtを参照してください。デフォルトはシステムのタイムゾーンです。
-
指定されている場合、トレースはこのディレクトリに保存されます。
-
このコンテキストで使用する特定のユーザーエージェント。
-
setViewportSizenull | ViewportSize (任意)#各ページに対して一貫したビューポートをエミュレートします。デフォルトは1280x720のビューポートです。一貫したビューポートのエミュレーションを無効にするには
nullを使用します。ビューポートエミュレーションについて詳しく学ぶ。注null値はデフォルトのプリセットからオプトアウトし、ビューポートをオペレーティングシステムによって定義されるホストウィンドウサイズに依存させます。これにより、テストの実行が非決定論的になります。
-
戻り値
name
v1.9より前に追加ブラウザ名を返します。例えば、'chromium'、'webkit'、または'firefox'です。
使用法
BrowserType.name();
戻り値