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

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

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

使用例

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

引数

  • cookies Array<Object>#
    • name string

    • value string

    • url string (オプション)

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

    • domain string (オプション)

      Cookie をすべてのサブドメインにも適用するには、ドメインの前にドット (".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

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

使用例

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 で追加#

      指定されたドメインの Cookie のみを削除します。

    • name string | RegExp (オプション)v1.43 で追加#

      指定された名前の Cookie のみを削除します。

    • path string | RegExp (オプション)v1.43 で追加#

      指定されたパスの Cookie のみを削除します。

戻り値


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 が指定されていない場合、このメソッドはすべての Cookie を返します。URL が指定されている場合、それらの URL に影響を与える Cookie のみが返されます。

使用例

await browserContext.cookies();
await 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 を公開する例

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

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

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

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 ファイルから提供しません。 この issue を参照してください。リクエストインターセプトを使用する場合は、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 からリプレイする際には使用されないサイズ、タイミング、ページ、Cookie、セキュリティ、その他の種類の HAR 情報は省略されます。デフォルトは minimal です。

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

      リクエスト URL にマッチする glob パターン、正規表現、または述語。パターンにマッチする 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();
});

引数

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

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

  • handler function(WebSocketRoute):Promise<Object> | Object#

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

戻り値


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

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

使用例

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

引数

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

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

      注記

      TypedArray を使用した 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 で行われたリクエストは、コンテキスト Cookie を使用します。

使用例

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 などの console 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" へのネットワークリクエストが完了し、その応答がポップアップでのロードを開始したときに、このイベントが発生します。このネットワークリクエストをルーティング/リッスンする場合は、browserContext.route() および browserContext.on('request') を、Page の同様のメソッドの代わりに使用してください。

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

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

使用例

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

イベントデータ


on('response')

追加バージョン: v1.12 browserContext.on('response')

リクエストに対する response ステータスとヘッダーを受信したときに発生します。成功したレスポンスの場合、イベントのシーケンスは requestresponse、および requestfinished です。特定のページからのレスポンスイベントをリッスンするには、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);

引数

戻り値