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

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 を返す場合、それは await されます。

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 を返す場合、それは await されます。

ページ専用バージョンについては、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' (system-exclusive 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 によってインターセプトされたリクエストをインターセプトしません。こちらの issue を参照してください。リクエストインターセプトを使用する場合は、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();

リクエストを調べてルートアクションを決定することができます。例えば、いくつかのポストデータを含むすべてのリクエストをモックし、他のすべてのリクエストをそのままにすることができます。

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

    ルーティング中に一致させる glob パターン、正規表現パターン、または [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 ファイルから提供しません。こちらの issue を参照してください。リクエストインターセプトを使用する場合は、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 に一致する glob パターン、正規表現、または述語。パターンに一致する 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 に保存している場合は、これを有効にしてください。

      型付き配列を持つ 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 (任意)

    • setTimeout double (任意)#

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

戻り値


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)

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

使用例

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

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

イベントデータ


onPage(handler)

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

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

ページが利用可能になる最も早いタイミングは、最初の URL に移動したときです。たとえば、window.open('http://example.com') でポップアップを開くと、"http://example.com" へのネットワークリクエストが完了し、そのレスポンスがポップアップでのロードを開始したときに、このイベントが発生します。このネットワークリクエストをルーティング/リッスンする場合は、BrowserContext.route() および BrowserContext.onRequest(handler) をそれぞれ Page の同様のメソッドの代わりに使用してください。

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)

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

使用例

BrowserContext.onRequestFinished(handler)

イベントデータ


onResponse(handler)

バージョン v1.12 で追加 browserContext.onResponse(handler)

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

使用例

BrowserContext.onResponse(handler)

イベントデータ


onWebError(handler)

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

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

使用例

BrowserContext.onWebError(handler)

イベントデータ