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

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

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

    • domain string (オプション)

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

    • path string (オプション)

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

    • expires number (オプション)

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

    • httpOnly boolean (オプション)

      オプション。

    • secure boolean (オプション)

      オプション。

    • sameSite "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.
await browserContext.addInitScript({
path: 'preload.js'
});

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

引数

  • script function | string | Object#

    • path string (オプション)

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

    • content string (オプション)

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

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

  • arg Serializable (オプション)#

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

戻り値


backgroundPages

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

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

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

使用法

browserContext.backgroundPages();

戻り値


browser

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

コンテキストのブラウザインスタンスを返します。永続的なコンテキストとして起動された場合は 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 (オプション)
    • domain string | RegExp (オプション)追加バージョン: v1.43#

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

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

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

    • path string | RegExp (オプション)追加バージョン: 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 (オプション)
    • reason string (オプション)追加バージョン: 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#

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

  • callback function#

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

  • options Object (オプション)

    • handle boolean (オプション)#

      非推奨

      このオプションは将来削除される予定です。

      引数を値渡しではなく、ハンドルとして渡すかどうか。ハンドルを渡す場合、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#

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

  • 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' (system-exclusive midi)
    • 'midi'
    • 'notifications'
    • 'payment-handler'
    • 'storage-access'
  • options Object (オプション)

戻り値


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 (オプション)#
  • options Object (オプション)
    • behavior "wait" | "ignoreErrors" | "default" (オプション)#

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

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

戻り値


route

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

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

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

使用法

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

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

    • times number (オプション)追加バージョン: v1.15#

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

戻り値


routeFromHAR

追加バージョン: v1.23 browserContext.routeFromHAR

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

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

使用法

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

引数

  • har string#

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

  • options Object (オプション)

    • notFound "abort" | "fallback" (オプション)#

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

      デフォルトは abort です。

    • update boolean (オプション)#

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

    • updateContent "embed" | "attach" (オプション)追加バージョン: v1.32#

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

    • updateMode "full" | "minimal" (オプション)追加バージョン: v1.32#

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

    • url string | RegExp (オプション)#

      リクエスト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

サービスワーカーは 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 (オプション)

      非負の精度値。デフォルトは 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 (オプション)
    • indexedDB boolean (オプション)追加バージョン: v1.51#

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

    • path string (オプション)#

      ストレージ状態を保存するファイルパス。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 (オプション)
    • behavior "wait" | "ignoreErrors" | "default" (オプション)#

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

      • 'default' - 現在のハンドラ呼び出し(ある場合)の終了を待機しません。アンルートされたハンドラがエラーをスローした場合、未処理のエラーになる可能性があります
      • 'wait' - 現在のハンドラ呼び出し(ある場合)の終了を待機します
      • 'ignoreErrors' - 現在のハンドラ呼び出し(ある場合)の終了を待機しません。アンルーティング後にハンドラによってスローされたすべてのエラーは、静かに捕捉されます

戻り値


waitForEvent

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

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

使用法

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

引数

  • event string#

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

  • optionsOrPredicate function | Object (オプション)#

    • predicate function

      イベントデータを受け取り、待機が解決されるべきときに真の値を返します。

    • timeout number (オプション)

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

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

  • options Object (オプション)

    • predicate function (オプション)#

      イベントデータを受け取り、待機が解決されるべきときに真の値を返します。

戻り値


プロパティ

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 APIメソッドのいずれか(例: console.log または console.dir)を呼び出したときに発行されます。

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')

alertpromptconfirm または beforeunload などの 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 が作成されたときに発行されます。ページはまだ読み込み中である可能性があります。このイベントはポップアップページに対しても発行されます。特定のページに関連するポップアップに関するイベントを受け取るには、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')

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

使用法

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

イベントデータ


on('serviceworker')

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

サービスワーカーは 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);

引数

戻り値