メインコンテンツにスキップ

BrowserContext

BrowserContext は、複数の独立したブラウザセッションを操作する方法を提供します。

たとえば、window.open 呼び出しでページが別のページを開くと、ポップアップは親ページのブラウザコンテキストに属します。

Playwright では、Browser.newContext() メソッドを使用して、分離された非永続的なブラウザコンテキストを作成できます。非永続的なブラウザコンテキストは、閲覧データをディスクに書き込みません。

// Create a new incognito browser context
BrowserContext context = browser.newContext();
// Create a new page inside context.
Page page = context.newPage();
page.navigate("https://example.com");
// Dispose context once it is no longer needed.
context.close();

メソッド

addCookies

v1.9より前に追加 browserContext.addCookies

このブラウザコンテキストにクッキーを追加します。このコンテキスト内のすべてのページには、これらのクッキーがインストールされます。クッキーは BrowserContext.cookies() を介して取得できます。

使用方法

browserContext.addCookies(Arrays.asList(cookieObject1, cookieObject2));

引数

  • cookies List<Cookie>#
    • setName String

    • setValue String

    • setUrl String (オプション)

      urlまたはdomain/pathのいずれかが必要です。オプション。

    • setDomain String (オプション)

      クッキーをすべてのサブドメインにも適用するには、ドメインの前にドットを付けて「.example.com」のようにします。urlまたはdomain/pathのいずれかが必要です。オプション。

    • setPath String (オプション)

      urlまたはdomain/pathのいずれかが必要です。オプション。

    • setExpires double (オプション)

      Unix時間(秒)。オプション。

    • setHttpOnly boolean (オプション)

      オプション。

    • setSecure boolean (オプション)

      オプション。

    • setSameSite enum SameSiteAttribute { STRICT, LAX, NONE } (オプション)

      オプション。

戻り値


addInitScript

v1.9より前に追加 browserContext.addInitScript

以下のいずれかのシナリオで評価されるスクリプトを追加します。

  • ブラウザコンテキスト内でページが作成またはナビゲートされるたびに。
  • ブラウザコンテキスト内の任意のページで子フレームがアタッチまたはナビゲートされるたびに。この場合、スクリプトは新しくアタッチされたフレームのコンテキストで評価されます。

スクリプトは、ドキュメントが作成された後、そのスクリプトが実行される前に評価されます。これは、JavaScript 環境を修正する場合、たとえば Math.random のシードを設定する場合に便利です。

使用方法

ページがロードされる前に Math.random を上書きする例

// preload.js
Math.random = () => 42;
// In your playwright script, assuming the preload.js file is in same directory.
browserContext.addInitScript(Paths.get("preload.js"));

BrowserContext.addInitScript()Page.addInitScript() を介してインストールされた複数のスクリプトの評価順序は未定義です。

引数

  • script String | Path#

    ブラウザコンテキスト内のすべてのページで評価されるスクリプト。

戻り値


backgroundPages

追加日: v1.11 browserContext.backgroundPages

バックグラウンドページは Chromium ベースのブラウザでのみサポートされています。

コンテキスト内のすべての既存のバックグラウンドページ。

使用方法

BrowserContext.backgroundPages();

戻り値


browser

v1.9より前に追加 browserContext.browser

コンテキストのブラウザインスタンスを返します。永続コンテキストとして起動された場合は null が返されます。

使用方法

BrowserContext.browser();

戻り値


clearCookies

v1.9より前に追加 browserContext.clearCookies

コンテキストからクッキーを削除します。オプションのフィルターを受け入れます。

使用方法

context.clearCookies();
context.clearCookies(new BrowserContext.ClearCookiesOptions().setName("session-id"));
context.clearCookies(new BrowserContext.ClearCookiesOptions().setDomain("my-origin.com"));
context.clearCookies(new BrowserContext.ClearCookiesOptions().setPath("/api/v1"));
context.clearCookies(new BrowserContext.ClearCookiesOptions()
.setName("session-id")
.setDomain("my-origin.com"));

引数

  • options BrowserContext.ClearCookiesOptions (オプション)
    • setDomain String | Pattern (オプション)追加日: v1.43#

      指定されたドメインを持つクッキーのみを削除します。

    • setName String | Pattern (オプション)追加日: v1.43#

      指定された名前を持つクッキーのみを削除します。

    • setPath String | Pattern (オプション)追加日: v1.43#

      指定されたパスを持つクッキーのみを削除します。

戻り値


clearPermissions

v1.9より前に追加 browserContext.clearPermissions

ブラウザコンテキストのすべてのパーミッションの上書きをクリアします。

使用方法

BrowserContext context = browser.newContext();
context.grantPermissions(Arrays.asList("clipboard-read"));
// do stuff ..
context.clearPermissions();

戻り値


close

v1.9より前に追加 browserContext.close

ブラウザコンテキストを閉じます。ブラウザコンテキストに属するすべてのページが閉じられます。

デフォルトのブラウザコンテキストは閉じることができません。

使用方法

BrowserContext.close();
BrowserContext.close(options);

引数

  • options BrowserContext.CloseOptions (オプション)
    • setReason String (オプション)追加日: v1.40#

      コンテキストのクローズによって中断された操作に報告される理由。

戻り値


cookies

v1.9より前に追加 browserContext.cookies

URL が指定されていない場合、このメソッドはすべてのクッキーを返します。URL が指定されている場合、それらの URL に影響するクッキーのみが返されます。

使用方法

BrowserContext.cookies();
BrowserContext.cookies(urls);

引数

戻り値


exposeBinding

v1.9より前に追加 browserContext.exposeBinding

このメソッドは、コンテキスト内のすべてのページのすべてのフレームの window オブジェクトに name という関数を追加します。呼び出されると、この関数は callback を実行し、callback の戻り値に解決される Promise を返します。callbackPromise を返す場合、それは待機されます。

callback 関数の最初の引数には、呼び出し元に関する情報が含まれます: { browserContext: BrowserContext, page: Page, frame: Frame }

ページのみのバージョンについては、Page.exposeBinding() を参照してください。

使用方法

コンテキスト内のすべてのページのすべてのフレームにページ URL を公開する例

import com.microsoft.playwright.*;

public class Example {
public static void main(String[] args) {
try (Playwright playwright = Playwright.create()) {
BrowserType webkit = playwright.webkit();
Browser browser = webkit.launch(new BrowserType.LaunchOptions().setHeadless(false));
BrowserContext context = browser.newContext();
context.exposeBinding("pageURL", (source, args) -> source.page().url());
Page page = context.newPage();
page.setContent("<script>\n" +
" async function onClick() {\n" +
" document.querySelector('div').textContent = await window.pageURL();\n" +
" }\n" +
"</script>\n" +
"<button onclick=\"onClick()\">Click me</button>\n" +
"<div></div>");
page.getByRole(AriaRole.BUTTON).click();
}
}
}

引数

  • name String#

    window オブジェクト上の関数の名前。

  • callback BindingCallback#

    Playwright のコンテキストで呼び出されるコールバック関数。

  • options BrowserContext.ExposeBindingOptions (オプション)

    • setHandle boolean (オプション)#

      非推奨

      このオプションは将来的に削除されます。

      引数を値として渡す代わりに、ハンドルとして渡すかどうか。ハンドルとして渡す場合、引数は1つのみサポートされます。値として渡す場合、複数の引数がサポートされます。

戻り値


exposeFunction

v1.9より前に追加 browserContext.exposeFunction

このメソッドは、コンテキスト内のすべてのページのすべてのフレームの window オブジェクトに name という関数を追加します。呼び出されると、この関数は callback を実行し、callback の戻り値に解決される Promise を返します。

callbackPromise を返す場合、それは待機されます。

ページのみのバージョンについては、Page.exposeFunction() を参照してください。

使用方法

コンテキスト内のすべてのページに sha256 関数を追加する例

import com.microsoft.playwright.*;

import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;

public class Example {
public static void main(String[] args) {
try (Playwright playwright = Playwright.create()) {
BrowserType webkit = playwright.webkit();
Browser browser = webkit.launch(new BrowserType.LaunchOptions().setHeadless(false));
BrowserContext context = browser.newContext();
context.exposeFunction("sha256", args -> {
String text = (String) args[0];
MessageDigest crypto;
try {
crypto = MessageDigest.getInstance("SHA-256");
} catch (NoSuchAlgorithmException e) {
return null;
}
byte[] token = crypto.digest(text.getBytes(StandardCharsets.UTF_8));
return Base64.getEncoder().encodeToString(token);
});
Page page = context.newPage();
page.setContent("<script>\n" +
" async function onClick() {\n" +
" document.querySelector('div').textContent = await window.sha256('PLAYWRIGHT');\n" +
" }\n" +
"</script>\n" +
"<button onclick=\"onClick()\">Click me</button>\n" +
"<div></div>\n");
page.getByRole(AriaRole.BUTTON).click();
}
}
}

引数

  • name String#

    window オブジェクト上の関数の名前。

  • callback FunctionCallback#

    Playwright のコンテキストで呼び出されるコールバック関数。

戻り値


grantPermissions

v1.9より前に追加 browserContext.grantPermissions

ブラウザコンテキストに指定されたパーミッションを付与します。指定された場合、対応するオリジンにのみパーミッションを付与します。

使用方法

BrowserContext.grantPermissions(permissions);
BrowserContext.grantPermissions(permissions, options);

引数

  • permissions List<String>#

    付与するパーミッションのリスト。

    危険

    サポートされるパーミッションは、ブラウザ間、さらには同じブラウザの異なるバージョン間でも異なります。どのパーミッションも更新後に動作しなくなる可能性があります。

    一部のブラウザでサポートされる可能性のあるパーミッションは以下のとおりです。

    • 'accelerometer'
    • 'ambient-light-sensor'
    • 'background-sync'
    • 'camera'
    • 'clipboard-read'
    • 'clipboard-write'
    • 'geolocation'
    • 'gyroscope'
    • 'magnetometer'
    • 'microphone'
    • 'midi-sysex' (システムエクスクルーシブ MIDI)
    • 'midi'
    • 'notifications'
    • 'payment-handler'
    • 'storage-access'
  • options BrowserContext.GrantPermissionsOptions (オプション)

戻り値


newCDPSession

追加日: v1.11 browserContext.newCDPSession

CDP セッションは Chromium ベースのブラウザでのみサポートされています。

新しく作成されたセッションを返します。

使用方法

BrowserContext.newCDPSession(page);

引数

  • page Page | Frame#

    新しいセッションを作成するターゲット。下位互換性のため、このパラメータは page と名付けられていますが、Page または Frame タイプにすることができます。

戻り値


newPage

v1.9より前に追加 browserContext.newPage

ブラウザコンテキストに新しいページを作成します。

使用方法

BrowserContext.newPage();

戻り値


pages

v1.9より前に追加 browserContext.pages

コンテキスト内の開いているすべてのページを返します。

使用方法

BrowserContext.pages();

戻り値


route

v1.9より前に追加 browserContext.route

ルーティングは、ブラウザコンテキスト内の任意のページによって行われるネットワークリクエストを変更する機能を提供します。ルーティングが有効になると、URLパターンに一致するすべてのリクエストは、続行、達成、または中断されない限り、停止します。

BrowserContext.route() は Service Worker によって傍受されたリクエストを傍受しません。この問題を参考にしてください。リクエスト傍受を使用する場合は、setServiceWorkers'block' に設定して Service Worker を無効にすることをお勧めします。

使用方法

すべての画像リクエストを中止する素朴なハンドラの例

BrowserContext context = browser.newContext();
context.route("**/*.{png,jpg,jpeg}", route -> route.abort());
Page page = context.newPage();
page.navigate("https://example.com");
browser.close();

または、代わりに正規表現パターンを使用した同じスニペット

BrowserContext context = browser.newContext();
context.route(Pattern.compile("(\\.png$)|(\\.jpg$)"), route -> route.abort());
Page page = context.newPage();
page.navigate("https://example.com");
browser.close();

リクエストを調べてルートアクションを決定することができます。たとえば、一部の POST データを含むすべてのリクエストをモックし、その他のリクエストはそのままにします。

context.route("/api/**", route -> {
if (route.request().postData().contains("my-string"))
route.fulfill(new Route.FulfillOptions().setBody("mocked-data"));
else
route.resume();
});

リクエストが両方のハンドラに一致する場合、ページルート (Page.route() で設定) はブラウザコンテキストルートよりも優先されます。

ハンドラを持つルートを削除するには、BrowserContext.unroute() を使用できます。

ルーティングを有効にすると、HTTPキャッシュが無効になります。

引数

  • url String | Pattern | Predicate<String>#

    ルーティング中に一致させる [URL] を受け取るグロブパターン、正規表現パターン、または述語。コンテキストオプションで setBaseURL が設定されており、提供された URL が * で始まらない文字列の場合、それは new URL() コンストラクタを使用して解決されます。

  • handler Consumer<Route>#

    リクエストをルーティングするハンドラ関数。

  • options BrowserContext.RouteOptions (オプション)

    • setTimes int (オプション)追加日: v1.15#

      ルートが使用される回数。デフォルトでは、毎回使用されます。

戻り値


routeFromHAR

追加日: v1.23 browserContext.routeFromHAR

指定した場合、コンテキストで行われるネットワークリクエストは HAR ファイルから提供されます。HARからのリプレイについて詳しくはこちらをご覧ください。

PlaywrightはService Workerによって傍受されたリクエストをHARファイルから提供しません。この問題を参考にしてください。リクエスト傍受を使用する場合は、setServiceWorkers'block'に設定してService Workerを無効にすることをお勧めします。

使用方法

BrowserContext.routeFromHAR(har);
BrowserContext.routeFromHAR(har, options);

引数

  • har Path#

    事前に記録されたネットワークデータを含む HAR ファイルへのパス。path が相対パスの場合、現在の作業ディレクトリを基準に解決されます。

  • options BrowserContext.RouteFromHAROptions (オプション)

    • setNotFound enum HarNotFound { ABORT, FALLBACK } (オプション)#

      • 'abort' に設定すると、HAR ファイルで見つからなかったリクエストはすべて中止されます。
      • 'fallback' に設定すると、ハンドラチェーン内の次のルートハンドラにフォールスルーします。

      デフォルトは abort です。

    • setUpdate boolean (オプション)#

      指定した場合、ファイルから提供する代わりに、実際のネットワーク情報で指定された HAR を更新します。ファイルは BrowserContext.close() が呼び出されたときにディスクに書き込まれます。

    • setUpdateContent enum RouteFromHarUpdateContentPolicy { EMBED, ATTACH } (オプション)追加日: v1.32#

      リソースコンテンツ管理を制御するオプション設定。attach が指定されている場合、リソースは個別のファイルまたは ZIP アーカイブのエントリとして永続化されます。embed が指定されている場合、コンテンツは HAR ファイル内にインラインで保存されます。

    • setUpdateMode enum HarMode { FULL, MINIMAL } (オプション)追加日: v1.32#

      minimal に設定すると、HAR からのルーティングに必要な情報のみが記録されます。これにより、HAR からのリプレイ時に使用されないサイズ、タイミング、ページ、クッキー、セキュリティ、およびその他の種類の HAR 情報が省略されます。デフォルトは minimal です。

    • setUrl String | Pattern (オプション)#

      リクエスト URL に一致させるグロブパターン、正規表現、または述語。パターンに一致する URL を持つリクエストのみが HAR ファイルから提供されます。指定しない場合、すべてのリクエストが HAR ファイルから提供されます。

戻り値


routeWebSocket

追加日: v1.48 browserContext.routeWebSocket

このメソッドは、ブラウザコンテキスト内の任意のページによって行われるwebsocket接続を変更することができます。

このメソッドが呼び出された後に作成された WebSockets のみがルーティングされることに注意してください。ページを作成する前にこのメソッドを呼び出すことをお勧めします。

使用方法

以下は、一部のwebsocketメッセージをブロックする単純なハンドラの例です。WebSocketRoute で詳細と例を参照してください。

context.routeWebSocket("/ws", ws -> {
ws.routeSend(message -> {
if ("to-be-blocked".equals(message))
return;
ws.send(message);
});
ws.connect();
});

引数

  • url String | Pattern | Predicate<String>#

    このパターンに一致するURLを持つWebSocketのみがルーティングされます。文字列パターンは、setBaseURL コンテキストオプションに相対的にすることができます。

  • handler Consumer<WebSocketRoute>#

    WebSocket をルーティングするハンドラ関数。

戻り値


setDefaultNavigationTimeout

v1.9より前に追加 browserContext.setDefaultNavigationTimeout

この設定は、以下のメソッドおよび関連するショートカットのデフォルトの最大ナビゲーション時間を変更します。

使用方法

BrowserContext.setDefaultNavigationTimeout(timeout);

引数

  • timeout double#

    最大ナビゲーション時間(ミリ秒)


setDefaultTimeout

v1.9より前に追加 browserContext.setDefaultTimeout

この設定は、timeout オプションを受け入れるすべてのメソッドのデフォルトの最大時間を変更します。

使用方法

BrowserContext.setDefaultTimeout(timeout);

引数

  • timeout double#

    最大時間(ミリ秒)。タイムアウトを無効にするには 0 を渡します。


setExtraHTTPHeaders

v1.9より前に追加 browserContext.setExtraHTTPHeaders

追加のHTTPヘッダーは、コンテキスト内の任意のページによって開始されたすべてのリクエストとともに送信されます。これらのヘッダーは、Page.setExtraHTTPHeaders() で設定されたページ固有の追加HTTPヘッダーとマージされます。ページが特定のヘッダーを上書きする場合、ブラウザコンテキストのヘッダー値の代わりにページ固有のヘッダー値が使用されます。

BrowserContext.setExtraHTTPHeaders() は、送信されるリクエストのヘッダーの順序を保証しません。

使用方法

BrowserContext.setExtraHTTPHeaders(headers);

引数

  • headers Map<String, String>#

    すべてのリクエストと一緒に送信される追加のHTTPヘッダーを含むオブジェクト。すべてのヘッダー値は文字列である必要があります。

戻り値


setGeolocation

v1.9より前に追加 browserContext.setGeolocation

コンテキストの地理位置情報を設定します。null または undefined を渡すと、位置情報が利用できないことをエミュレートします。

使用方法

browserContext.setGeolocation(new Geolocation(59.95, 30.31667));

ブラウザコンテキストのページが地理位置情報を読み取るパーミッションを付与するには、BrowserContext.grantPermissions() の使用を検討してください。

引数

  • geolocation null | Geolocation#
    • setLatitude double

      -90から90までの緯度。

    • setLongitude double

      -180から180までの経度。

    • setAccuracy double (オプション)

      非負の精度値。デフォルトは 0

戻り値


setOffline

v1.9より前に追加 browserContext.setOffline

使用方法

BrowserContext.setOffline(offline);

引数

  • offline boolean#

    ブラウザコンテキストのネットワークをオフラインとしてエミュレートするかどうか。

戻り値


storageState

v1.9より前に追加 browserContext.storageState

このブラウザコンテキストのストレージ状態を返します。現在のクッキー、ローカルストレージのスナップショット、IndexedDB スナップショットが含まれます。

使用方法

BrowserContext.storageState();
BrowserContext.storageState(options);

引数

  • options BrowserContext.StorageStateOptions (オプション)
    • setIndexedDB boolean (オプション)追加日: v1.51#

      ストレージ状態のスナップショットに IndexedDB を含めるには、true に設定します。Firebase 認証のように、アプリケーションが認証トークンを保存するために IndexedDB を使用している場合は、これを有効にしてください。

    • setPath Path (オプション)#

      ストレージ状態を保存するファイルパス。setPath が相対パスの場合、現在の作業ディレクトリを基準に解決されます。パスが指定されていない場合でもストレージ状態は返されますが、ディスクには保存されません。

戻り値


unroute

v1.9より前に追加 browserContext.unroute

BrowserContext.route() で作成されたルートを削除します。handler が指定されていない場合、url のすべてのルートを削除します。

使用方法

BrowserContext.unroute(url);
BrowserContext.unroute(url, handler);

引数

戻り値


unrouteAll

追加日: v1.41 browserContext.unrouteAll

BrowserContext.route()BrowserContext.routeFromHAR() で作成されたすべてのルートを削除します。

使用方法

BrowserContext.unrouteAll();

戻り値


waitForCondition

追加日: v1.32 browserContext.waitForCondition

このメソッドは、条件が true を返すまでブロックされます。このメソッドが条件を待機している間、すべての Playwright イベントがディスパッチされます。

使用方法

ページイベントに依存する条件を待機するためにこのメソッドを使用します

List<String> failedUrls = new ArrayList<>();
context.onResponse(response -> {
if (!response.ok()) {
failedUrls.add(response.url());
}
});
page1.getByText("Create user").click();
page2.getByText("Submit button").click();
context.waitForCondition(() -> failedUrls.size() > 3);

引数

  • condition [BooleanSupplier]#

    待機する条件。

  • options BrowserContext.WaitForConditionOptions (オプション)

戻り値


waitForConsoleMessage

追加日: v1.34 browserContext.waitForConsoleMessage

アクションを実行し、コンテキスト内のページで ConsoleMessage がログに記録されるのを待ちます。述語が提供されている場合、ConsoleMessage の値を predicate 関数に渡し、predicate(message) が真の値を返すのを待ちます。BrowserContext.onConsoleMessage(handler) イベントが発火する前にページが閉じられた場合、エラーがスローされます。

使用方法

BrowserContext.waitForConsoleMessage(callback);
BrowserContext.waitForConsoleMessage(callback, options);

引数

  • options BrowserContext.WaitForConsoleMessageOptions (オプション)

    • setPredicate Predicate<ConsoleMessage> (オプション)#

      ConsoleMessage オブジェクトを受け取り、待機が解決されるときに真の値を返します。

    • setTimeout double (オプション)#

      待機する最大時間(ミリ秒)。デフォルトは 30000(30秒)。タイムアウトを無効にするには 0 を渡します。デフォルト値は BrowserContext.setDefaultTimeout() を使用して変更できます。

  • callback Runnable#

    イベントをトリガーするアクションを実行するコールバック。

戻り値


waitForPage

追加日: v1.9 browserContext.waitForPage

アクションを実行し、コンテキストで新しい Page が作成されるのを待ちます。述語が提供されている場合、Page の値を predicate 関数に渡し、predicate(event) が真の値を返すのを待ちます。新しい Page が作成される前にコンテキストが閉じられた場合、エラーがスローされます。

使用方法

BrowserContext.waitForPage(callback);
BrowserContext.waitForPage(callback, options);

引数

  • options BrowserContext.WaitForPageOptions (オプション)

    • setPredicate Predicate<Page> (オプション)#

      Page オブジェクトを受け取り、待機が解決されるときに真の値を返します。

    • setTimeout double (オプション)#

      待機する最大時間(ミリ秒)。デフォルトは 30000(30秒)。タイムアウトを無効にするには 0 を渡します。デフォルト値は BrowserContext.setDefaultTimeout() を使用して変更できます。

  • callback Runnable#

    イベントをトリガーするアクションを実行するコールバック。

戻り値


プロパティ

clock()

追加日: v1.45 browserContext.clock()

Playwright には、時刻と時間の経過をモックする機能があります。

使用方法

BrowserContext.clock()

戻り値


request()

追加日: v1.16 browserContext.request()

このコンテキストに関連付けられたAPIテストヘルパー。このAPIで行われたリクエストは、コンテキストクッキーを使用します。

使用方法

BrowserContext.request()

戻り値


tracing()

追加日: v1.12 browserContext.tracing()

使用方法

BrowserContext.tracing()

戻り値


イベント

onBackgroundPage(handler)

追加日: v1.11 browserContext.onBackgroundPage(handler)

Chromium ブラウザの永続コンテキストでのみ動作します。

コンテキストに新しいバックグラウンドページが作成されたときに発火します。

context.onBackgroundPage(backgroundPage -> {
System.out.println(backgroundPage.url());
});

使用方法

BrowserContext.onBackgroundPage(handler)

イベントデータ


onClose(handler)

v1.9より前に追加 browserContext.onClose(handler)

ブラウザコンテキストが閉じられたときに発火します。これは以下のいずれかの理由で発生する可能性があります。

  • ブラウザコンテキストが閉じられた。
  • ブラウザアプリケーションが閉じられたかクラッシュした。
  • Browser.close() メソッドが呼び出された。

使用方法

BrowserContext.onClose(handler)

イベントデータ


onConsoleMessage(handler)

追加日: v1.34 browserContext.onConsoleMessage(handler)

ページ内の JavaScript が console.logconsole.dir などのコンソール API メソッドのいずれかを呼び出したときに発火します。

console.log およびページに渡された引数は、ConsoleMessage イベントハンドラ引数で利用できます。

使用方法

context.onConsoleMessage(msg -> {
for (int i = 0; i < msg.args().size(); ++i)
System.out.println(i + ": " + msg.args().get(i).jsonValue());
});
page.evaluate("() => console.log('hello', 5, { foo: 'bar' })");

イベントデータ


onDialog(handler)

追加日: v1.34 browserContext.onDialog(handler)

alertpromptconfirmbeforeunload などの JavaScript ダイアログが表示されたときに発火します。リスナーはダイアログを Dialog.accept() または Dialog.dismiss() のいずれかを行う必要があります。そうしないと、ページがダイアログを待機してフリーズし、クリックなどのアクションが完了しなくなります。

使用方法

context.onDialog(dialog -> {
dialog.accept();
});

Page.onDialog(handler) または BrowserContext.onDialog(handler) リスナーが存在しない場合、すべてのダイアログは自動的に閉じられます。

イベントデータ


onPage(handler)

v1.9より前に追加 browserContext.onPage(handler)

このイベントは、BrowserContext に新しい Page が作成されたときに発火します。ページはまだロード中である可能性があります。このイベントはポップアップページに対しても発火します。特定のページに関連するポップアップに関するイベントを受け取るには、Page.onPopup(handler) も参照してください。

ページが利用可能になる最も早い時点は、初期URLにナビゲートしたときです。たとえば、window.open('http://example.com') でポップアップを開くと、「http://example.com」へのネットワークリクエストが完了し、その応答がポップアップにロードされ始めたときにこのイベントが発火します。このネットワークリクエストをルーティング/リッスンしたい場合は、Page の同様のメソッドではなく、それぞれ BrowserContext.route()BrowserContext.onRequest(handler) を使用してください。

Page newPage = context.waitForPage(() -> {
page.getByText("open new page").click();
});
System.out.println(newPage.evaluate("location.href"));

ページが特定の状態になるまで待つには、Page.waitForLoadState() を使用します(ほとんどの場合、必要ありません)。

使用方法

BrowserContext.onPage(handler)

イベントデータ


onRequest(handler)

追加日: v1.12 browserContext.onRequest(handler)

このコンテキストを通じて作成された任意のページからリクエストが発行されたときに発火します。request オブジェクトは読み取り専用です。特定のページからのリクエストのみをリッスンするには、Page.onRequest(handler) を使用します。

リクエストを傍受して変更するには、BrowserContext.route() または Page.route() を参照してください。

使用方法

BrowserContext.onRequest(handler)

イベントデータ


onRequestFailed(handler)

追加日: v1.12 browserContext.onRequestFailed(handler)

リクエストがタイムアウトなどにより失敗したときに発火します。特定のページからの失敗したリクエストのみをリッスンするには、Page.onRequestFailed(handler) を使用します。

404や503などのHTTPエラーレスポンスは、HTTPの観点からは依然として成功したレスポンスであるため、リクエストはBrowserContext.onRequestFinished(handler)イベントで完了し、BrowserContext.onRequestFailed(handler)では完了しません。

使用方法

BrowserContext.onRequestFailed(handler)

イベントデータ


onRequestFinished(handler)

追加日: v1.12 browserContext.onRequestFinished(handler)

レスポンスボディのダウンロード後にリクエストが正常に完了したときに発火します。成功したレスポンスの場合、イベントのシーケンスは requestresponserequestfinished です。特定のページからの成功したリクエストをリッスンするには、Page.onRequestFinished(handler) を使用します。

使用方法

BrowserContext.onRequestFinished(handler)

イベントデータ


onResponse(handler)

追加日: v1.12 browserContext.onResponse(handler)

リクエストに対して response のステータスとヘッダーが受信されたときに発火します。成功したレスポンスの場合、イベントのシーケンスは requestresponserequestfinished です。特定のページからのレスポンスイベントをリッスンするには、Page.onResponse(handler) を使用します。

使用方法

BrowserContext.onResponse(handler)

イベントデータ


onWebError(handler)

追加日: v1.38 browserContext.onWebError(handler)

このコンテキスト内のいずれかのページで例外が処理されなかったときに発火します。特定のページからのエラーをリッスンするには、代わりに Page.onPageError(handler) を使用します。

使用方法

BrowserContext.onWebError(handler)

イベントデータ