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

BrowserContext

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

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

Playwrightはbrowser.new_context()メソッドを使って、分離された非永続ブラウザコンテキストを作成できます。非永続ブラウザコンテキストは、ブラウジングデータをディスクに書き込みません。

# create a new incognito browser context
context = browser.new_context()
# create a new page inside context.
page = context.new_page()
page.goto("https://example.com")
# dispose context once it is no longer needed.
context.close()

メソッド

add_cookies

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

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

使用法

browser_context.add_cookies([cookie_object1, cookie_object2])

引数

  • cookies List[Dict]#
    • name str

    • value str

    • url str (オプション)

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

    • domain str (オプション)

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

    • path str (オプション)

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

    • expires float (オプション)

      Unix 時間 (秒)。任意。

    • httpOnly bool (オプション)

      任意。

    • secure bool (オプション)

      任意。

    • sameSite "Strict" | "Lax" | "None" (オプション)

      任意。

    • partitionKey str (オプション)

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

戻り値


add_init_script

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

以下のいずれかのシナリオで評価されるスクリプトを追加します。

  • ブラウザコンテキスト内でページが作成されるか、ナビゲートされるたびに。
  • ブラウザコンテキスト内の任意のページで子フレームがアタッチされるか、ナビゲートされるたびに。この場合、スクリプトは新しくアタッチされたフレームのコンテキストで評価されます。

スクリプトは、ドキュメントが作成された後、そのスクリプトが実行される前に評価されます。これは、JavaScript 環境を修正する場合に役立ちます (例: Math.random をシードする場合)。

使用法

ページが読み込まれる前に Math.random をオーバーライドする例

// preload.js
Math.random = () => 42;
# in your playwright script, assuming the preload.js file is in same directory.
browser_context.add_init_script(path="preload.js")

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

引数

  • path Union[str, pathlib.Path] (オプション)#

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

  • script str (オプション)#

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

戻り値


clear_cookies

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

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

使用法

context.clear_cookies()
context.clear_cookies(name="session-id")
context.clear_cookies(domain="my-origin.com")
context.clear_cookies(path="/api/v1")
context.clear_cookies(name="session-id", domain="my-origin.com")

引数

  • domain str | Pattern (オプション)追加バージョン: v1.43#

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

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

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

  • path str | Pattern (オプション)追加バージョン: v1.43#

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

戻り値


clear_permissions

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

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

使用法

context = browser.new_context()
context.grant_permissions(["clipboard-read"])
# do stuff ..
context.clear_permissions()

戻り値


close

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

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

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

使用法

browser_context.close()
browser_context.close(**kwargs)

引数

  • reason str (オプション)追加されたバージョン: v1.40#

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

戻り値


cookies

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

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

使用法

browser_context.cookies()
browser_context.cookies(**kwargs)

引数

  • urls str | List[str] (オプション)#

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

戻り値


expect_console_message

追加バージョン: v1.34 browserContext.expect_console_message

アクションを実行し、コンテキスト内のページでConsoleMessageがログに記録されるのを待ちます。predicateが提供されている場合、ConsoleMessageの値をpredicate関数に渡し、predicate(message)が真の値を返すのを待ちます。browser_context.on("console")イベントが発火する前にページが閉じられた場合、エラーがスローされます。

使用法

browser_context.expect_console_message()
browser_context.expect_console_message(**kwargs)

引数

  • predicate Callable[ConsoleMessage]:bool (オプション)#

    ConsoleMessageオブジェクトを受け取り、待機が解決されるべきときに真の値に解決します。

  • timeout float (オプション)#

    待機する最大時間(ミリ秒)。デフォルトは30000(30秒)です。0を渡すとタイムアウトは無効になります。デフォルト値はbrowser_context.set_default_timeout()で変更できます。

戻り値


expect_event

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

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

使用法

with context.expect_event("page") as event_info:
page.get_by_role("button").click()
page = event_info.value

引数

  • event str#

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

  • predicate Callable (オプション)#

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

  • timeout float (オプション)#

    待機する最大時間(ミリ秒)。デフォルトは30000(30秒)です。0を渡すとタイムアウトは無効になります。デフォルト値はbrowser_context.set_default_timeout()で変更できます。

戻り値


expect_page

追加バージョン: v1.9 browserContext.expect_page

アクションを実行し、コンテキスト内に新しいPageが作成されるのを待ちます。predicateが提供されている場合、Pageの値をpredicate関数に渡し、predicate(event)が真の値を返すのを待ちます。新しいPageが作成される前にコンテキストが閉じられた場合、エラーをスローします。

使用法

browser_context.expect_page()
browser_context.expect_page(**kwargs)

引数

  • predicate Callable[Page]:bool (オプション)#

    Pageオブジェクトを受け取り、待機が解決されるべきときに真の値を返します。

  • timeout float (オプション)#

    待機する最大時間(ミリ秒)。デフォルトは30000(30秒)です。0を渡すとタイムアウトは無効になります。デフォルト値はbrowser_context.set_default_timeout()で変更できます。

戻り値


expose_binding

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

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

コールバック関数の最初の引数には、呼び出し元に関する情報が含まれています: { browserContext: BrowserContext, page: Page, frame: Frame }

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

使用法

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

from playwright.sync_api import sync_playwright, Playwright

def run(playwright: Playwright):
webkit = playwright.webkit
browser = webkit.launch(headless=False)
context = browser.new_context()
context.expose_binding("pageURL", lambda source: source["page"].url)
page = context.new_page()
page.set_content("""
<script>
async function onClick() {
document.querySelector('div').textContent = await window.pageURL();
}
</script>
<button onclick="onClick()">Click me</button>
<div></div>
""")
page.get_by_role("button").click()

with sync_playwright() as playwright:
run(playwright)

引数

  • name str#

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

  • callback Callable#

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

  • handle bool (オプション)#

    非推奨

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

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

戻り値


expose_function

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

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

コールバックPromiseを返す場合、それが待機されます。

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

使用法

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

import hashlib
from playwright.sync_api import sync_playwright

def sha256(text: str) -> str:
m = hashlib.sha256()
m.update(bytes(text, "utf8"))
return m.hexdigest()


def run(playwright: Playwright):
webkit = playwright.webkit
browser = webkit.launch(headless=False)
context = browser.new_context()
context.expose_function("sha256", sha256)
page = context.new_page()
page.set_content("""
<script>
async function onClick() {
document.querySelector('div').textContent = await window.sha256('PLAYWRIGHT');
}
</script>
<button onclick="onClick()">Click me</button>
<div></div>
""")
page.get_by_role("button").click()

with sync_playwright() as playwright:
run(playwright)

引数

  • name str#

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

  • callback Callable#

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

戻り値


grant_permissions

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

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

使用法

browser_context.grant_permissions(permissions)
browser_context.grant_permissions(permissions, **kwargs)

引数

  • permissions List[str]#

    付与するパーミッションのリスト。

    危険

    サポートされているパーミッションはブラウザによって異なり、同じブラウザの異なるバージョン間でも異なります。アップデート後に任意のパーミッションが動作しなくなる可能性があります。

    いくつかのブラウザでサポートされている可能性のあるパーミッションは次のとおりです。

    • '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'
  • origin str (オプション)#

    パーミッションを付与する オリジン (例: "https://example.com")。

戻り値


new_cdp_session

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

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

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

使用法

browser_context.new_cdp_session(page)

引数

  • page Page | Frame#

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

戻り値


new_page

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

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

使用法

browser_context.new_page()

戻り値


route

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

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

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

使用法

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

context = browser.new_context()
page = context.new_page()
context.route("**/*.{png,jpg,jpeg}", lambda route: route.abort())
page.goto("https://example.com")
browser.close()

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

context = browser.new_context()
page = context.new_page()
context.route(re.compile(r"(\.png$)|(\.jpg$)"), lambda route: route.abort())
page = await context.new_page()
page = context.new_page()
page.goto("https://example.com")
browser.close()

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

def handle_route(route: Route):
if ("my-string" in route.request.post_data):
route.fulfill(body="mocked-data")
else:
route.continue_()
context.route("/api/**", handle_route)

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

ハンドラを持つルートを削除するには、browser_context.unroute()を使用します。

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

引数

  • url str | Pattern | Callable[URL]:bool#

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

  • handler Callable[Route, Request]:Promise[Any] | Any#

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

  • times int (オプション)追加されたバージョン: v1.15#

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

戻り値


route_from_har

追加日: v1.23 browserContext.route_from_har

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

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

使用法

browser_context.route_from_har(har)
browser_context.route_from_har(har, **kwargs)

引数

  • har Union[str, pathlib.Path]#

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

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

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

    デフォルトは abort です。

  • update bool (オプション)#

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

  • update_content "embed" | "attach" (オプション)追加日: v1.32#

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

  • update_mode "full" | "minimal" (オプション)追加日: v1.32#

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

  • url str | Pattern (オプション)#

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

戻り値


route_web_socket

追加日: v1.48 browserContext.route_web_socket

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

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

使用法

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

def message_handler(ws: WebSocketRoute, message: Union[str, bytes]):
if message == "to-be-blocked":
return
ws.send(message)

def handler(ws: WebSocketRoute):
ws.route_send(lambda message: message_handler(ws, message))
ws.connect()

context.route_web_socket("/ws", handler)

引数

  • url str | Pattern | Callable[URL]:bool#

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

  • handler Callable[WebSocketRoute]:Promise[Any] | Any#

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

戻り値


set_default_navigation_timeout

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

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

使用法

browser_context.set_default_navigation_timeout(timeout)

引数

  • timeout float#

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


set_default_timeout

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

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

使用法

browser_context.set_default_timeout(timeout)

引数

  • timeout float#

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


set_extra_http_headers

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

追加のHTTPヘッダーは、コンテキスト内のどのページによって開始されたすべてのリクエストとともに送信されます。これらのヘッダーは、page.set_extra_http_headers()で設定されたページ固有の追加HTTPヘッダーとマージされます。ページが特定のヘッダーを上書きする場合、ブラウザコンテキストのヘッダー値ではなく、ページ固有のヘッダー値が使用されます。

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

使用法

browser_context.set_extra_http_headers(headers)

引数

  • headers Dict[str, str]#

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

戻り値


set_geolocation

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

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

使用法

browser_context.set_geolocation({"latitude": 59.95, "longitude": 30.31667})

ブラウザコンテキストのページにジオロケーションを読み取る権限を付与するために、browser_context.grant_permissions()の使用を検討してください。

引数

  • geolocation NoneType | Dict#
    • latitude float

      -90から90の間の緯度。

    • longitude float

      -180から180の間の経度。

    • accuracy float (オプション)

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

戻り値


set_offline

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

使用法

browser_context.set_offline(offline)

引数

  • offline bool#

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

戻り値


storage_state

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

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

使用法

browser_context.storage_state()
browser_context.storage_state(**kwargs)

引数

  • indexed_db bool (オプション)追加バージョン: v1.51#

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

  • path Union[str, pathlib.Path] (オプション)#

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

戻り値


unroute

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

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

使用法

browser_context.unroute(url)
browser_context.unroute(url, **kwargs)

引数

戻り値


unroute_all

追加日: v1.41 browserContext.unroute_all

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

使用法

browser_context.unroute_all()
browser_context.unroute_all(**kwargs)

引数

  • behavior "wait" | "ignoreErrors" | "default" (オプション)#

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

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

戻り値


wait_for_event

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

ほとんどの場合、browser_context.expect_event()を使用する必要があります。

指定されたeventが発火するのを待ちます。predicateが提供されている場合、イベントの値をpredicate関数に渡し、predicate(event)が真の値を返すのを待ちます。eventが発火する前にブラウザコンテキストが閉じられた場合、エラーをスローします。

使用法

browser_context.wait_for_event(event)
browser_context.wait_for_event(event, **kwargs)

引数

  • event str#

    イベント名。通常、*.on(event) に渡されるものと同じです。

  • predicate Callable (オプション)#

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

  • timeout float (オプション)#

    待機する最大時間(ミリ秒)。デフォルトは30000(30秒)です。0を渡すとタイムアウトは無効になります。デフォルト値はbrowser_context.set_default_timeout()で変更できます。

戻り値


プロパティ

background_pages

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

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

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

使用法

browser_context.background_pages

戻り値


browser

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

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

使用法

browser_context.browser

戻り値


clock

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

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

使用法

browser_context.clock

タイプ


pages

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

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

使用法

browser_context.pages

戻り値


request

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

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

使用法

browser_context.request

タイプ


service_workers

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

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

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

使用法

browser_context.service_workers

戻り値


tracing

追加日: v1.12 browserContext.tracing

使用法

browser_context.tracing

タイプ


イベント

on("backgroundpage")

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

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

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

background_page = context.wait_for_event("backgroundpage")

使用法

browser_context.on("backgroundpage", handler)

イベントデータ


on("close")

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

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

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

使用法

browser_context.on("close", handler)

イベントデータ


on("console")

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

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

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

使用法

def print_args(msg):
for arg in msg.args:
print(arg.json_value())

context.on("console", print_args)
page.evaluate("console.log('hello', 5, { foo: 'bar' })")

イベントデータ


on("dialog")

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

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

使用法

context.on("dialog", lambda dialog: dialog.accept())

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

イベントデータ


on("page")

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

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

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

with context.expect_page() as page_info:
page.get_by_text("open new page").click(),
page = page_info.value
print(page.evaluate("location.href"))

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

使用法

browser_context.on("page", handler)

イベントデータ


on("request")

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

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

リクエストを傍受して変更するには、browser_context.route()またはpage.route()を参照してください。

使用法

browser_context.on("request", handler)

イベントデータ


on("requestfailed")

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

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

404や503などのHTTPエラー応答は、HTTPの観点からは成功した応答であるため、リクエストはbrowser_context.on("requestfinished")イベントで完了し、browser_context.on("requestfailed")では完了しません。

使用法

browser_context.on("requestfailed", handler)

イベントデータ


on("requestfinished")

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

応答ボディをダウンロードした後、リクエストが正常に完了したときに発火します。成功した応答の場合、イベントの順序はrequestresponserequestfinishedです。特定のページからの成功したリクエストをリッスンするには、page.on("requestfinished")を使用します。

使用法

browser_context.on("requestfinished", handler)

イベントデータ


on("response")

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

リクエストの応答ステータスとヘッダーが受信されたときに発火します。成功した応答の場合、イベントの順序はrequestresponserequestfinishedです。特定のページからの応答イベントをリッスンするには、page.on("response")を使用します。

使用法

browser_context.on("response", handler)

イベントデータ


on("serviceworker")

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

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

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

使用法

browser_context.on("serviceworker", handler)

イベントデータ


on("weberror")

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

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

使用法

browser_context.on("weberror", handler)

イベントデータ