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

BrowserContext

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

ページが別のページを開いた場合 (例: window.open の呼び出しによる)、ポップアップは親ページのブラウザコンテキストに属します。

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

// Create a new incognito browser context
const context = await browser.newContext();
// Create a new page inside context.
const page = await context.newPage();
await page.goto('https://example.com');
// Dispose context once it's no longer needed.
await context.close();

メソッド

addCookies

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

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

使用法

await browserContext.addCookies([cookieObject1, cookieObject2]);

引数

  • cookies Array<Object>#
    • name string

    • value string

    • url string (optional)

      url または domain / path のいずれかが必須です。任意です。

    • domain string (optional)

      クッキーをすべてのサブドメインにも適用するには、ドメインの前にドットを付けます (例: ".example.com")。url または domain / path のいずれかが必須です。任意です。

    • path string (optional)

      url または domain / path のいずれかが必須です。任意です。

    • expires number (optional)

      Unix 時間 (秒)。任意。

    • httpOnly boolean (optional)

      任意。

    • secure boolean (optional)

      任意。

    • sameSite "Strict" | "Lax" | "None" (optional)

      任意。

    • partitionKey string (optional)

      分割されたサードパーティクッキー (別名 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.
await browserContext.addInitScript({
path: 'preload.js'
});

browserContext.addInitScript()page.addInitScript()でインストールされた複数のスクリプトの評価順序は定義されていません。

引数

  • script function | string | Object#

    • path string (optional)

      JavaScriptファイルへのパス。path が相対パスの場合、現在の作業ディレクトリを基準に解決されます。オプションです。

    • content string (optional)

      スクリプトの生のコンテンツ。オプションです。

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

  • arg Serializable (optional)#

    scriptに渡すオプションの引数(関数を渡す場合のみサポート)。

戻り値


backgroundPages

追加されたバージョン: v1.11 browserContext.backgroundPages

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

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

使用法

browserContext.backgroundPages();

戻り値


browser

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

コンテキストを所有するブラウザインスタンスを取得します。コンテキストが通常のブラウザの外部で作成された場合 (例: Android または Electron) は null を返します。

使用法

browserContext.browser();

戻り値


clearCookies

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

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

使用法

await context.clearCookies();
await context.clearCookies({ name: 'session-id' });
await context.clearCookies({ domain: 'my-origin.com' });
await context.clearCookies({ domain: /.*my-origin\.com/ });
await context.clearCookies({ path: '/api/v1' });
await context.clearCookies({ name: 'session-id', domain: 'my-origin.com' });

引数

  • options Object (optional)
    • domain string | RegExp (optional)追加バージョン: v1.43#

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

    • name string | RegExp (optional)追加バージョン: v1.43#

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

    • path string | RegExp (optional)追加バージョン: v1.43#

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

戻り値


clearPermissions

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

ブラウザコンテキストのすべてのパーミッションオーバーライドをクリアします。

使用法

const context = await browser.newContext();
await context.grantPermissions(['clipboard-read']);
// do stuff ..
context.clearPermissions();

戻り値


close

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

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

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

使用法

await browserContext.close();
await browserContext.close(options);

引数

  • options Object (optional)
    • reason string (optional)追加されたバージョン: v1.40#

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

戻り値


cookies

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

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

使用法

await browserContext.cookies();
await browserContext.cookies(urls);

引数

戻り値


exposeBinding

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

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

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

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

使用法

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

const { webkit } = require('playwright');  // Or 'chromium' or 'firefox'.

(async () => {
const browser = await webkit.launch({ headless: false });
const context = await browser.newContext();
await context.exposeBinding('pageURL', ({ page }) => page.url());
const page = await context.newPage();
await page.setContent(`
<script>
async function onClick() {
document.querySelector('div').textContent = await window.pageURL();
}
</script>
<button onclick="onClick()">Click me</button>
<div></div>
`);
await page.getByRole('button').click();
})();

引数

  • name string#

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

  • callback function#

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

  • options Object (optional)

    • handle boolean (optional)#

      非推奨

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

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

戻り値


exposeFunction

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

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

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

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

使用法

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

const { webkit } = require('playwright');  // Or 'chromium' or 'firefox'.
const crypto = require('crypto');

(async () => {
const browser = await webkit.launch({ headless: false });
const context = await browser.newContext();
await context.exposeFunction('sha256', text =>
crypto.createHash('sha256').update(text).digest('hex'),
);
const page = await context.newPage();
await page.setContent(`
<script>
async function onClick() {
document.querySelector('div').textContent = await window.sha256('PLAYWRIGHT');
}
</script>
<button onclick="onClick()">Click me</button>
<div></div>
`);
await page.getByRole('button').click();
})();

引数

  • name string#

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

  • callback function#

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

戻り値


grantPermissions

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

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

使用法

await browserContext.grantPermissions(permissions);
await browserContext.grantPermissions(permissions, options);

引数

  • permissions Array<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 Object (optional)

戻り値


newCDPSession

追加されたバージョン: v1.11 browserContext.newCDPSession

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

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

使用法

await browserContext.newCDPSession(page);

引数

  • page Page | Frame#

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

戻り値


newPage

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

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

使用法

await browserContext.newPage();

戻り値


pages

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

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

使用法

browserContext.pages();

戻り値


removeAllListeners

追加されたバージョン: v1.47 browserContext.removeAllListeners

指定されたタイプ(またはタイプが指定されていない場合は登録されているすべてのリスナー)のすべてのリスナーを削除します。非同期リスナーが完了するのを待ったり、これらのリスナーからのその後のエラーを無視したりできます。

使用法

await browserContext.removeAllListeners();
await browserContext.removeAllListeners(type, options);

引数

  • type string (optional)#
  • options Object (optional)
    • behavior "wait" | "ignoreErrors" | "default" (optional)#

      すでに実行中のリスナーを待つかどうか、またエラーが発生した場合の対処法を指定します。

      • 'default' - 現在のリスナー呼び出し(もしあれば)の終了を待たず、リスナーがエラーをスローすると未処理のエラーが発生する可能性があります。
      • 'wait' - 現在のリスナー呼び出し(もしあれば)の終了を待ちます。
      • 'ignoreErrors' - 現在のリスナー呼び出し(もしあれば)の終了を待たず、削除後にリスナーによってスローされたすべてのエラーは静かに捕捉されます。

戻り値


route

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

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

browserContext.route()はサービスワーカーによってインターセプトされたリクエストをインターセプトしません。この問題を参考にしてください。リクエストインターセプトを使用する際には、serviceWorkers'block'に設定してサービスワーカーを無効にすることをお勧めします。

使用法

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

const context = await browser.newContext();
await context.route('**/*.{png,jpg,jpeg}', route => route.abort());
const page = await context.newPage();
await page.goto('https://example.com');
await browser.close();

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

const context = await browser.newContext();
await context.route(/(\.png$)|(\.jpg$)/, route => route.abort());
const page = await context.newPage();
await page.goto('https://example.com');
await browser.close();

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

await context.route('/api/**', async route => {
if (route.request().postData().includes('my-string'))
await route.fulfill({ body: 'mocked-data' });
else
await route.continue();
});

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

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

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

引数

  • url string | RegExp | function(URL):boolean#

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

  • handler function(Route, Request):Promise<Object> | Object#

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

  • options Object (optional)

    • times number (optional)追加されたバージョン: v1.15#

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

戻り値


routeFromHAR

追加日: v1.23 browserContext.routeFromHAR

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

Playwrightは、サービスワーカーによってインターセプトされたリクエストをHARファイルから提供しません。この問題を参考にしてください。リクエストインターセプトを使用する際には、serviceWorkers'block'に設定してサービスワーカーを無効にすることをお勧めします。

使用法

await browserContext.routeFromHAR(har);
await browserContext.routeFromHAR(har, options);

引数

  • har string#

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

  • options Object (optional)

    • notFound "abort" | "fallback" (optional)#

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

      デフォルトは abort です。

    • update boolean (optional)#

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

    • updateContent "embed" | "attach" (optional)追加日: v1.32#

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

    • updateMode "full" | "minimal" (optional)追加日: v1.32#

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

    • url string | RegExp (optional)#

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

戻り値


routeWebSocket

追加日: v1.48 browserContext.routeWebSocket

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

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

使用法

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

await context.routeWebSocket('/ws', async ws => {
ws.routeSend(message => {
if (message === 'to-be-blocked')
return;
ws.send(message);
});
await ws.connect();
});

引数

戻り値


serviceWorkers

追加されたバージョン: v1.11 browserContext.serviceWorkers

Service workersはChromiumベースのブラウザでのみサポートされています。

コンテキスト内のすべての既存のサービスワーカー。

使用法

browserContext.serviceWorkers();

戻り値


setDefaultNavigationTimeout

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

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

使用法

browserContext.setDefaultNavigationTimeout(timeout);

引数

  • timeout number#

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


setDefaultTimeout

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

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

使用法

browserContext.setDefaultTimeout(timeout);

引数

  • timeout number#

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


setExtraHTTPHeaders

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

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

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

使用法

await browserContext.setExtraHTTPHeaders(headers);

引数

  • headers Object<string, string>#

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

戻り値


setGeolocation

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

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

使用法

await browserContext.setGeolocation({ latitude: 59.95, longitude: 30.31667 });

ブラウザコンテキストページがその位置情報を読み取るための権限を付与するには、browserContext.grantPermissions()の使用を検討してください。

引数

  • geolocation null | Object#
    • latitude number

      -90から90の間の緯度。

    • longitude number

      -180から180の間の経度。

    • accuracy number (optional)

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

戻り値


setOffline

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

使用法

await browserContext.setOffline(offline);

引数

  • offline boolean#

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

戻り値


storageState

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

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

使用法

await browserContext.storageState();
await browserContext.storageState(options);

引数

  • options Object (optional)
    • indexedDB boolean (optional)追加バージョン: v1.51#

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

    • path string (optional)#

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

戻り値


unroute

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

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

使用法

await browserContext.unroute(url);
await browserContext.unroute(url, handler);

引数

戻り値


unrouteAll

追加日: v1.41 browserContext.unrouteAll

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

使用法

await browserContext.unrouteAll();
await browserContext.unrouteAll(options);

引数

  • options Object (optional)
    • behavior "wait" | "ignoreErrors" | "default" (optional)#

      既に実行中のハンドラを待機するかどうか、およびエラーがスローされた場合の対処方法を指定します。

      • 'default' - 現在のハンドラ呼び出し (もしあれば) の完了を待たず、アンルートされたハンドラがエラーをスローした場合、未処理のエラーが発生する可能性があります。
      • 'wait' - 現在のハンドラ呼び出し (もしあれば) の完了を待ちます。
      • 'ignoreErrors' - 現在のハンドラ呼び出し (もしあれば) の完了を待たず、アンルーティング後にハンドラによってスローされたすべてのエラーは静かにキャッチされます。

戻り値


waitForEvent

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

イベントが発生するのを待ち、その値を述語関数に渡します。述語がtruthyな値を返すと解決します。イベントが発生する前にコンテキストが閉じられた場合、エラーをスローします。イベントデータ値を返します。

使用法

const pagePromise = context.waitForEvent('page');
await page.getByRole('button').click();
const page = await pagePromise;

引数

  • event string#

    イベント名。browserContext.on(event)に渡すものと同じ。

  • optionsOrPredicate function | Object (optional)#

    • predicate function

      イベントデータを受け取り、待機が解決されるべき場合にtruthyな値に解決されます。

    • timeout number (optional)

      ミリ秒単位で待機する最大時間。デフォルトは0で、タイムアウトなしです。デフォルト値は、設定ファイルのactionTimeoutオプション、またはbrowserContext.setDefaultTimeout()メソッドを使用して変更できます。

    イベントを受け取る述語、またはオプションオブジェクトのいずれか。オプション。

  • options Object (optional)

    • predicate function (optional)#

      イベントデータを受け取り、待機が解決されるべき場合にtruthyな値に解決されます。

戻り値


プロパティ

clock

追加されたバージョン: v1.45 browserContext.clock

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

使用法

browserContext.clock

タイプ


request

追加バージョン: v1.16 browserContext.request

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

使用法

browserContext.request

タイプ


tracing

追加日: v1.12 browserContext.tracing

使用法

browserContext.tracing

タイプ


イベント

on('backgroundpage')

追加されたバージョン: v1.11 browserContext.on('backgroundpage')

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

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

const backgroundPage = await context.waitForEvent('backgroundpage');

使用法

browserContext.on('backgroundpage', data => {});

イベントデータ


on('close')

v1.9より前に追加 browserContext.on('close')

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

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

使用法

browserContext.on('close', data => {});

イベントデータ


on('console')

追加バージョン: v1.34 browserContext.on('console')

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

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

使用法

context.on('console', async msg => {
const values = [];
for (const arg of msg.args())
values.push(await arg.jsonValue());
console.log(...values);
});
await page.evaluate(() => console.log('hello', 5, { foo: 'bar' }));

イベントデータ


on('dialog')

追加バージョン: v1.34 browserContext.on('dialog')

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

使用法

context.on('dialog', dialog => {
dialog.accept();
});

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

イベントデータ


on('page')

v1.9より前に追加 browserContext.on('page')

BrowserContextで新しいページが作成されたときにイベントが発火します。ページはまだ読み込み中である可能性があります。このイベントはポップアップページについても発火します。特定のページに関連するポップアップに関するイベントを受信するには、page.on('popup')も参照してください。

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

const newPagePromise = context.waitForEvent('page');
await page.getByText('open new page').click();
const newPage = await newPagePromise;
console.log(await newPage.evaluate('location.href'));

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

使用法

browserContext.on('page', data => {});

イベントデータ


on('request')

追加日: v1.12 browserContext.on('request')

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

リクエストをインターセプトして変更するには、browserContext.route()またはpage.route()を参照してください。

使用法

browserContext.on('request', data => {});

イベントデータ


on('requestfailed')

追加日: v1.12 browserContext.on('requestfailed')

タイムアウトなどによりリクエストが失敗したときに発火します。特定のページからの失敗したリクエストのみをリッスンするには、page.on('requestfailed')を使用してください。

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

使用法

browserContext.on('requestfailed', data => {});

イベントデータ


on('requestfinished')

追加日: v1.12 browserContext.on('requestfinished')

レスポンスボディのダウンロード後にリクエストが正常に完了したときに発火します。正常なレスポンスの場合、イベントのシーケンスはrequestresponserequestfinishedです。特定のページからの正常なリクエストをリッスンするには、page.on('requestfinished')を使用してください。

使用法

browserContext.on('requestfinished', data => {});

イベントデータ


on('response')

追加日: v1.12 browserContext.on('response')

リクエストのresponseステータスとヘッダーが受信されたときに発火します。正常なレスポンスの場合、イベントのシーケンスはrequestresponserequestfinishedです。特定のページからのレスポンスイベントをリッスンするには、page.on('response')を使用してください。

使用法

browserContext.on('response', data => {});

イベントデータ


on('serviceworker')

追加されたバージョン: v1.11 browserContext.on('serviceworker')

Service workersはChromiumベースのブラウザでのみサポートされています。

コンテキストで新しいサービスワーカーが作成されたときに発火します。

使用法

browserContext.on('serviceworker', data => {});

イベントデータ


on('weberror')

追加バージョン: v1.38 browserContext.on('weberror')

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

使用法

browserContext.on('weberror', data => {});

イベントデータ


非推奨

setHTTPCredentials

v1.9より前に追加 browserContext.setHTTPCredentials
非推奨

ブラウザは、正常な認証後に資格情報をキャッシュする場合があります。代わりに新しいブラウザコンテキストを作成してください。

使用法

await browserContext.setHTTPCredentials(httpCredentials);

引数

戻り値