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

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 } (オプション)

      任意。

    • setPartitionKey String (オプション)

      分割されたサードパーティクッキー (別名 CHIPS) のパーティションキー。任意。

戻り値


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

コンテキストを所有するブラウザインスタンスを取得します。コンテキストが通常のブラウザの外部で作成された場合 (例: Android または Electron) は 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);

引数

  • urls String | List<String> (オプション)#

    オプションの URL のリスト。

戻り値


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#

    ウィンドウオブジェクト上の関数の名前。

  • 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#

    ウィンドウオブジェクト上の関数の名前。

  • 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'
    • 'local-fonts'
  • 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()は、サービスワーカーによってインターセプトされたリクエストをインターセプトしません。この問題を読んでください。リクエストインターセプトを使用する場合は、setServiceWorkers'block'に設定してサービスワーカーを無効にすることをお勧めします。

使用法

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

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は、サービスワーカーによってインターセプトされたリクエストをHARファイルから提供しません。この問題を読んでください。リクエストインターセプトを使用する場合は、setServiceWorkers'block'に設定してサービスワーカーを無効にすることをお勧めします。

使用法

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ファイルから提供する代わりに、実際のネットワーク情報で指定された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 接続を変更できます。

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

使用法

以下は、一部の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 Authentication のように、アプリケーションが認証トークンの保存に 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.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)

このコンテキストを通じて作成されたすべてのページからリクエストが発行されたときに発行されます。リクエストオブジェクトは読み取り専用です。特定のページからのリクエストのみをリッスンするには、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)

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

使用法

BrowserContext.onResponse(handler)

イベントデータ


onWebError(handler)

追加バージョン: v1.38 browserContext.onWebError(handler)

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

使用法

BrowserContext.onWebError(handler)

イベントデータ