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

BrowserContext

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

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

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

using var playwright = await Playwright.CreateAsync();
var browser = await playwright.Firefox.LaunchAsync(new() { Headless = false });
// Create a new incognito browser context
var context = await browser.NewContextAsync();
// Create a new page inside context.
var page = await context.NewPageAsync();
await page.GotoAsync("https://bing.com");
// Dispose context once it is no longer needed.
await context.CloseAsync();

メソッド

AddCookiesAsync

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

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

使用方法

await context.AddCookiesAsync(new[] { cookie1, cookie2 });

引数

  • cookies IEnumerable<Cookie>#
    • Name string

    • Value string

    • Url string? (オプション)

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

    • Domain string? (オプション)

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

    • Path string? (オプション)

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

    • Expires [float]? (オプション)

      Unixタイム (秒)。オプション。

    • HttpOnly bool? (オプション)

      オプション。

    • Secure bool? (オプション)

      オプション。

    • SameSite enum SameSiteAttribute { Strict, Lax, None }? (オプション)

      オプション。

戻り値


AddInitScriptAsync

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

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

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

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

使用方法

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

// preload.js
Math.random = () => 42;
await Context.AddInitScriptAsync(scriptPath: "preload.js");
注記

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

引数

  • script string | string#

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

戻り値


BackgroundPages

追加されたバージョン: v1.11 browserContext.BackgroundPages
注記

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

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

使用方法

BrowserContext.BackgroundPages

戻り値


Browser

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

コンテキストのブラウザインスタンスを返します。永続的なコンテキストとして起動された場合はnullが返されます。

使用方法

BrowserContext.Browser

戻り値


ClearCookiesAsync

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

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

使用方法

await context.ClearCookiesAsync();
await context.ClearCookiesAsync(new() { Name = "session-id" });
await context.ClearCookiesAsync(new() { Domain = "my-origin.com" });
await context.ClearCookiesAsync(new() { Path = "/api/v1" });
await context.ClearCookiesAsync(new() { Name = "session-id", Domain = "my-origin.com" });

引数

  • options BrowserContextClearCookiesOptions? (オプション)
    • Domain|DomainRegex string? | Regex? (オプション)追加されたバージョン: v1.43#

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

    • Name|NameRegex string? | Regex? (オプション)追加されたバージョン: v1.43#

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

    • Path|PathRegex string? | Regex? (オプション)追加されたバージョン: v1.43#

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

戻り値


ClearPermissionsAsync

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

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

使用方法

var context = await browser.NewContextAsync();
await context.GrantPermissionsAsync(new[] { "clipboard-read" });
// Alternatively, you can use the helper class ContextPermissions
// to specify the permissions...
// do stuff ...
await context.ClearPermissionsAsync();

戻り値


CloseAsync

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

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

注記

デフォルトのブラウザコンテキストは閉じられません。

使用方法

await BrowserContext.CloseAsync(options);

引数

  • options BrowserContextCloseOptions? (オプション)
    • Reason string? (オプション)追加されたバージョン: v1.40#

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

戻り値


CookiesAsync

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

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

使用方法

await BrowserContext.CookiesAsync(urls);

引数

戻り値


ExposeBindingAsync

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

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

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

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

使用方法

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

using Microsoft.Playwright;

using var playwright = await Playwright.CreateAsync();
var browser = await playwright.Webkit.LaunchAsync(new() { Headless = false });
var context = await browser.NewContextAsync();

await context.ExposeBindingAsync("pageURL", source => source.Page.Url);
var page = await context.NewPageAsync();
await page.SetContentAsync("<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>");
await page.GetByRole(AriaRole.Button).ClickAsync();

引数

  • name string#

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

  • callback Action<BindingSource, T, [TResult]>#

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

  • options BrowserContextExposeBindingOptions? (オプション)

    • Handle bool? (オプション)#

      非推奨

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

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

戻り値


ExposeFunctionAsync

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

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

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

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

使用方法

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

using Microsoft.Playwright;
using System;
using System.Security.Cryptography;
using System.Threading.Tasks;

class BrowserContextExamples
{
public static async Task Main()
{
using var playwright = await Playwright.CreateAsync();
var browser = await playwright.Webkit.LaunchAsync(new() { Headless = false });
var context = await browser.NewContextAsync();

await context.ExposeFunctionAsync("sha256", (string input) =>
{
return Convert.ToBase64String(
SHA256.Create().ComputeHash(System.Text.Encoding.UTF8.GetBytes(input)));
});

var page = await context.NewPageAsync();
await page.SetContentAsync("<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>");

await page.GetByRole(AriaRole.Button).ClickAsync();
Console.WriteLine(await page.TextContentAsync("div"));
}
}

引数

  • name string#

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

  • callback Action<T, [TResult]>#

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

戻り値


GrantPermissionsAsync

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

指定された権限をブラウザコンテキストに付与します。指定された場合、対応する権限をそのオリジンにのみ付与します。

使用方法

await BrowserContext.GrantPermissionsAsync(permissions, options);

引数

  • permissions IEnumerable<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'
  • options BrowserContextGrantPermissionsOptions? (オプション)

戻り値


NewCDPSessionAsync

追加されたバージョン: v1.11 browserContext.NewCDPSessionAsync
注記

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

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

使用方法

await BrowserContext.NewCDPSessionAsync(page);

引数

  • page Page | Frame#

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

戻り値


NewPageAsync

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

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

使用方法

await BrowserContext.NewPageAsync();

戻り値


Pages

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

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

使用方法

BrowserContext.Pages

戻り値


RouteAsync

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

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

注記

BrowserContext.RouteAsync()は、Service Workerによってインターセプトされたリクエストをインターセプトしません。この問題を参照してください。リクエストインターセプトを使用する場合は、ServiceWorkers'block'に設定してService Workerを無効にすることをお勧めします。

使用方法

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

var context = await browser.NewContextAsync();
var page = await context.NewPageAsync();
await context.RouteAsync("**/*.{png,jpg,jpeg}", r => r.AbortAsync());
await page.GotoAsync("https://theverge.com");
await browser.CloseAsync();

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

var context = await browser.NewContextAsync();
var page = await context.NewPageAsync();
await context.RouteAsync(new Regex("(\\.png$)|(\\.jpg$)"), r => r.AbortAsync());
await page.GotoAsync("https://theverge.com");
await browser.CloseAsync();

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

await page.RouteAsync("/api/**", async r =>
{
if (r.Request.PostData.Contains("my-string"))
await r.FulfillAsync(new() { Body = "mocked-data" });
else
await r.ContinueAsync();
});

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

ハンドラと共にルートを削除するには、BrowserContext.UnrouteAsync()を使用できます。

注記

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

引数

  • url string | Regex | Func<string, bool>#

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

  • handler Action<Route>#

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

  • options BrowserContextRouteOptions? (オプション)

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

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

戻り値


RouteFromHARAsync

追加されたバージョン: v1.23 browserContext.RouteFromHARAsync

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

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

使用方法

await BrowserContext.RouteFromHARAsync(har, options);

引数

  • har string#

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

  • options BrowserContextRouteFromHAROptions? (オプション)

    • NotFound enum HarNotFound { Abort, Fallback }? (オプション)#

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

      デフォルトはabortです。

    • Update bool? (オプション)#

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

    • UpdateContent enum RouteFromHarUpdateContentPolicy { Embed, Attach }? (オプション)追加されたバージョン: v1.32#

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

    • UpdateMode enum HarMode { Full, Minimal }? (オプション)追加されたバージョン: v1.32#

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

    • Url|UrlRegex string? | Regex? (オプション)#

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

戻り値


RouteWebSocketAsync

追加されたバージョン: v1.48 browserContext.RouteWebSocketAsync

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

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

使用方法

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

await context.RouteWebSocketAsync("/ws", async ws => {
ws.RouteSend(message => {
if (message == "to-be-blocked")
return;
ws.Send(message);
});
await ws.ConnectAsync();
});

引数

  • url string | Regex | Func<string, bool>#

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

  • handler Action<WebSocketRoute>#

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

戻り値


RunAndWaitForConsoleMessageAsync

追加されたバージョン: v1.34 browserContext.RunAndWaitForConsoleMessageAsync

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

使用方法

await BrowserContext.RunAndWaitForConsoleMessageAsync(action, options);

引数

  • action Func<Task>#

    イベントをトリガーするアクション。

  • options BrowserContextRunAndWaitForConsoleMessageOptions? (オプション)

    • Predicate Func<ConsoleMessage?, bool> (オプション)#

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

    • Timeout [float]? (オプション)#

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

戻り値


WaitForConsoleMessageAsync

追加されたバージョン: v1.34 browserContext.WaitForConsoleMessageAsync

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

使用方法

await BrowserContext.WaitForConsoleMessageAsync(action, options);

引数

  • options BrowserContextRunAndWaitForConsoleMessageOptions? (オプション)
    • Predicate Func<ConsoleMessage?, bool> (オプション)#

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

    • Timeout [float]? (オプション)#

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

戻り値


RunAndWaitForPageAsync

追加されたバージョン: v1.9 browserContext.RunAndWaitForPageAsync

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

使用方法

await BrowserContext.RunAndWaitForPageAsync(action, options);

引数

  • action Func<Task>追加されたバージョン: v1.12#

    イベントをトリガーするアクション。

  • options BrowserContextRunAndWaitForPageOptions? (オプション)

    • Predicate Func<Page?, bool> (オプション)#

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

    • Timeout [float]? (オプション)#

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

戻り値


WaitForPageAsync

追加されたバージョン: v1.9 browserContext.WaitForPageAsync

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

使用方法

await BrowserContext.WaitForPageAsync(action, options);

引数

  • options BrowserContextRunAndWaitForPageOptions? (オプション)
    • Predicate Func<Page?, bool> (オプション)#

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

    • Timeout [float]? (オプション)#

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

戻り値


SetDefaultNavigationTimeout

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

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

使用方法

BrowserContext.SetDefaultNavigationTimeout(timeout);

引数

  • timeout [float]#

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


SetDefaultTimeout

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

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

使用方法

BrowserContext.SetDefaultTimeout(timeout);

引数

  • timeout [float]#

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


SetExtraHTTPHeadersAsync

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

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

注記

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

使用方法

await BrowserContext.SetExtraHTTPHeadersAsync(headers);

引数

  • headers IDictionary<string, string>#

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

戻り値


SetGeolocationAsync

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

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

使用方法

await context.SetGeolocationAsync(new Geolocation()
{
Latitude = 59.95f,
Longitude = 30.31667f
});
注記

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

引数

  • geolocation Geolocation?#
    • Latitude [float]

      -90から90までの緯度。

    • Longitude [float]

      -180から180までの経度。

    • Accuracy [float]? (オプション)

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

戻り値


SetOfflineAsync

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

使用方法

await BrowserContext.SetOfflineAsync(offline);

引数

  • offline bool#

    ブラウザコンテキストのネットワークがオフラインであるかのようにエミュレートするかどうか。

戻り値


StorageStateAsync

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

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

使用方法

await BrowserContext.StorageStateAsync(options);

引数

  • options BrowserContextStorageStateOptions? (オプション)
    • IndexedDB bool? (オプション)追加されたバージョン: v1.51#

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

    • Path string? (オプション)#

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

戻り値


UnrouteAsync

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

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

使用方法

await BrowserContext.UnrouteAsync(url, handler);

引数

戻り値


UnrouteAllAsync

追加されたバージョン: v1.41 browserContext.UnrouteAllAsync

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

使用方法

await BrowserContext.UnrouteAllAsync(options);

引数

  • options BrowserContextUnrouteAllOptions? (オプション)
    • Behavior enum UnrouteBehavior { Wait, IgnoreErrors, Default }? (オプション)#

      既に実行中のハンドラを待機するかどうか、およびエラーをスローした場合の動作を指定します

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

戻り値


プロパティ

APIRequest

追加されたバージョン: v1.16 browserContext.APIRequest

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

使用方法

BrowserContext.APIRequest


Clock

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

Playwrightはクロックと時間の経過をモックする機能を持っています。

使用方法

BrowserContext.Clock


Tracing

追加されたバージョン: v1.12 browserContext.Tracing

使用方法

BrowserContext.Tracing


イベント

イベント BackgroundPage

追加されたバージョン: v1.11 browserContext.event BackgroundPage
注記

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

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

context.BackgroundPage += (_, backgroundPage) =>
{
Console.WriteLine(backgroundPage.Url);
};

使用方法

BrowserContext.BackgroundPage += async (_, page) => {};

イベントデータ


イベント Close

v1.9より前に追加 browserContext.event Close

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

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

使用方法

BrowserContext.Close += async (_, browserContext) => {};

イベントデータ


イベント Console

追加されたバージョン: v1.34 browserContext.event Console

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

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

使用方法

context.Console += async (_, msg) =>
{
foreach (var arg in msg.Args)
Console.WriteLine(await arg.JsonValueAsync<object>());
};

await page.EvaluateAsync("console.log('hello', 5, { foo: 'bar' })");

イベントデータ


イベント Dialog

追加されたバージョン: v1.34 browserContext.event Dialog

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

使用方法

Context.Dialog += async (_, dialog) =>
{
await dialog.AcceptAsync();
};
注記

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

イベントデータ


イベント Page

v1.9より前に追加 browserContext.event Page

BrowserContextに新しいPageが作成されたときにイベントが発生します。ページはまだ読み込み中である可能性があります。ポップアップページでもイベントが発生します。特定のページに関連するポップアップに関するイベントを受け取るには、Page.Popupも参照してください。

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

var popup = await context.RunAndWaitForPageAsync(async =>
{
await page.GetByText("open new page").ClickAsync();
});
Console.WriteLine(await popup.EvaluateAsync<string>("location.href"));
注記

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

使用方法

BrowserContext.Page += async (_, page) => {};

イベントデータ


イベント Request

追加されたバージョン: v1.12 browserContext.event Request

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

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

使用方法

BrowserContext.Request += async (_, request) => {};

イベントデータ


イベント RequestFailed

追加されたバージョン: v1.12 browserContext.event RequestFailed

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

注記

404や503などのHTTPエラー応答は、HTTPの観点からは依然として成功した応答であるため、リクエストはBrowserContext.RequestFinishedイベントで完了し、BrowserContext.RequestFailedでは完了しません。

使用方法

BrowserContext.RequestFailed += async (_, request) => {};

イベントデータ


イベント RequestFinished

追加されたバージョン: v1.12 browserContext.event RequestFinished

応答本体のダウンロード後にリクエストが正常に完了したときに発生します。成功した応答の場合、イベントのシーケンスはrequestresponserequestfinishedです。特定のページからの成功したリクエストをリッスンするには、Page.RequestFinishedを使用してください。

使用方法

BrowserContext.RequestFinished += async (_, request) => {};

イベントデータ


イベント Response

追加されたバージョン: v1.12 browserContext.event Response

リクエストに対する応答ステータスとヘッダーが受信されたときに発生します。成功した応答の場合、イベントのシーケンスはrequestresponserequestfinishedです。特定のページからの応答イベントをリッスンするには、Page.Responseを使用してください。

使用方法

BrowserContext.Response += async (_, response) => {};

イベントデータ


イベント WebError

追加されたバージョン: v1.38 browserContext.event WebError

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

使用方法

BrowserContext.WebError += async (_, webError) => {};

イベントデータ