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

Page

Page は、Browser 内の単一のタブ、または Chromium の 拡張機能のバックグラウンドページを操作するためのメソッドを提供します。1 つの Browser インスタンスは、複数の Page インスタンスを持つことができます。

この例では、ページを作成し、URL にナビゲートして、スクリーンショットを保存します。

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

class PageExamples
{
public static async Task Run()
{
using var playwright = await Playwright.CreateAsync();
await using var browser = await playwright.Webkit.LaunchAsync();
var page = await browser.NewPageAsync();
await page.GotoAsync("https://www.theverge.com");
await page.ScreenshotAsync(new() { Path = "theverge.png" });
}
}

Page クラスは、Node.js ネイティブの EventEmitter メソッド (on, once, removeListener など) を使用して処理できるさまざまなイベント (下記で説明) を発行します。

この例では、単一のページ load イベントのメッセージをログに記録します。

page.Load += (_, _) => Console.WriteLine("Page loaded!");

イベントの登録を解除するには、removeListener メソッドを使用します。

void PageLoadHandler(object _, IPage p) {
Console.WriteLine("Page loaded!");
};

page.Load += PageLoadHandler;
// Do some work...
page.Load -= PageLoadHandler;

メソッド

AddInitScriptAsync

v1.9 で追加 page.AddInitScriptAsync

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

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

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

使用法

ページがロードされる前に Math.random をオーバーライドする例

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

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

引数

  • script string | string#

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

戻り値


AddLocatorHandlerAsync

v1.42 で追加 page.AddLocatorHandlerAsync

Web ページをテストする際、「サインアップ」ダイアログのような予期しないオーバーレイが表示され、ボタンをクリックするなど、自動化したいアクションを妨げる場合があります。これらのオーバーレイは、常に同じように、または同時に表示されるとは限らないため、自動テストで処理するのが難しい場合があります。

このメソッドを使用すると、オーバーレイが可視であることを検出したときにアクティブになる特別な関数 (ハンドラーと呼ばれる) を設定できます。ハンドラーの仕事は、オーバーレイを削除し、オーバーレイが存在しなかったかのようにテストを続行できるようにすることです。

留意すべき点

  • オーバーレイが予測可能に表示される場合は、Page.AddLocatorHandlerAsync() を使用する代わりに、テストで明示的にオーバーレイを待機し、通常のテストフローの一部としてオーバーレイを閉じることが推奨されます。
  • Playwright は、実行可能性チェックが必要なアクションを実行または再試行するたびに、または自動待機アサーションチェックを実行する前に、オーバーレイをチェックします。オーバーレイが表示されている場合、Playwright は最初にハンドラーを呼び出し、次にアクション/アサーションを続行します。ハンドラーは、アクション/アサーションを実行した場合にのみ呼び出されることに注意してください。オーバーレイが可視になっても、アクションを実行しない場合、ハンドラーはトリガーされません。
  • ハンドラーを実行した後、Playwright はハンドラーをトリガーしたオーバーレイがもう可視でないことを確認します。NoWaitAfter を使用して、この動作をオプトアウトできます。
  • ハンドラーの実行時間は、ハンドラーを実行したアクション/アサーションのタイムアウトにカウントされます。ハンドラーに時間がかかりすぎると、タイムアウトが発生する可能性があります。
  • 複数のハンドラーを登録できます。ただし、一度に実行されるハンドラーは 1 つだけです。ハンドラー内のアクションが別のハンドラーに依存しないようにしてください。
警告

ハンドラーを実行すると、テスト中にページの状態が変更されます。例えば、現在フォーカスされている要素が変更され、マウスが移動します。ハンドラーの後に実行されるアクションが自己完結型であり、フォーカスとマウスの状態が変更されていないことに依存しないようにしてください。

例えば、Locator.FocusAsync() の後に Keyboard.PressAsync() を呼び出すテストを考えてみましょう。ハンドラーがこれら 2 つのアクションの間でボタンをクリックすると、フォーカスされている要素が間違っている可能性が高く、キープレスが予期しない要素で発生します。この問題を回避するには、代わりに Locator.PressAsync() を使用してください。

別の例は、Mouse.MoveAsync() の後に Mouse.DownAsync() が続く一連のマウスアクションです。ここでも、ハンドラーがこれら 2 つのアクションの間で実行されると、マウスダウン中のマウス位置が間違っています。ハンドラーによって状態が変更されないことに依存しない Locator.ClickAsync() のような自己完結型のアクションを優先してください。

使用法

表示されたときに「ニュースレターにサインアップ」ダイアログを閉じる例

// Setup the handler.
await page.AddLocatorHandlerAsync(page.GetByText("Sign up to the newsletter"), async () => {
await page.GetByRole(AriaRole.Button, new() { Name = "No thanks" }).ClickAsync();
});

// Write the test as usual.
await page.GotoAsync("https://example.com");
await page.GetByRole("button", new() { Name = "Start here" }).ClickAsync();

表示されたときに「セキュリティの詳細を確認してください」ページをスキップする例

// Setup the handler.
await page.AddLocatorHandlerAsync(page.GetByText("Confirm your security details"), async () => {
await page.GetByRole(AriaRole.Button, new() { Name = "Remind me later" }).ClickAsync();
});

// Write the test as usual.
await page.GotoAsync("https://example.com");
await page.GetByRole("button", new() { Name = "Start here" }).ClickAsync();

すべてのアクション実行可能性チェックでカスタムコールバックを使用する例。常に可視である <body> ロケーターを使用するため、ハンドラーはすべてのアクション実行可能性チェックの前に呼び出されます。ハンドラーが <body> 要素を非表示にしないため、NoWaitAfter を指定することが重要です。

// Setup the handler.
await page.AddLocatorHandlerAsync(page.Locator("body"), async () => {
await page.EvaluateAsync("window.removeObstructionsForTestIfNeeded()");
}, new() { NoWaitAfter = true });

// Write the test as usual.
await page.GotoAsync("https://example.com");
await page.GetByRole("button", new() { Name = "Start here" }).ClickAsync();

ハンドラーは、元のロケーターを引数として取ります。Times を設定することで、呼び出し回数を指定してハンドラーを自動的に削除することもできます。

await page.AddLocatorHandlerAsync(page.GetByText("Sign up to the newsletter"), async locator => {
await locator.ClickAsync();
}, new() { Times = 1 });

引数

  • locator Locator#

    ハンドラーをトリガーするロケーター。

  • handler Func<Locator, Task>#

    locator が表示されたら実行される関数。この関数は、クリックなどのアクションをブロックする要素を取り除く必要があります。

  • options PageAddLocatorHandlerOptions? (オプション)

    • NoWaitAfter bool? (オプション)v1.44 で追加#

      デフォルトでは、ハンドラーの呼び出し後、Playwright はオーバーレイが非表示になるまで待機し、その後、Playwright はハンドラーをトリガーしたアクション/アサーションを続行します。このオプションを使用すると、この動作をオプトアウトできるため、ハンドラーの実行後もオーバーレイを可視のままにすることができます。

    • Times int? (オプション)v1.44 で追加#

      このハンドラーを呼び出す最大回数を指定します。デフォルトでは無制限です。

戻り値


AddScriptTagAsync

v1.9 で追加 page.AddScriptTagAsync

目的の URL またはコンテンツを持つ <script> タグをページに追加します。スクリプトの onload が発生したとき、またはスクリプトコンテンツがフレームに挿入されたときに、追加されたタグを返します。

使用法

await Page.AddScriptTagAsync(options);

引数

  • options PageAddScriptTagOptions? (オプション)
    • Content string? (オプション)#

      フレームに挿入される生の JavaScript コンテンツ。

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

      フレームに挿入される JavaScript ファイルへのパス。path が相対パスの場合、現在の作業ディレクトリからの相対パスとして解決されます。

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

      スクリプトタイプ。JavaScript ES6 モジュールをロードするには 'module' を使用します。詳細については、script を参照してください。

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

      追加するスクリプトの URL。

戻り値


AddStyleTagAsync

v1.9 で追加 page.AddStyleTagAsync

目的の URL を持つ <link rel="stylesheet"> タグ、またはコンテンツを持つ <style type="text/css"> タグをページに追加します。スタイルシートの onload が発生したとき、または CSS コンテンツがフレームに挿入されたときに、追加されたタグを返します。

使用法

await Page.AddStyleTagAsync(options);

引数

  • options PageAddStyleTagOptions? (オプション)
    • Content string? (オプション)#

      フレームに挿入される生の CSS コンテンツ。

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

      フレームに挿入される CSS ファイルへのパス。path が相対パスの場合、現在の作業ディレクトリからの相対パスとして解決されます。

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

      <link> タグの URL。

戻り値


BringToFrontAsync

v1.9 で追加 page.BringToFrontAsync

ページを前面に表示します (タブをアクティブにします)。

使用法

await Page.BringToFrontAsync();

戻り値


CloseAsync

v1.9 で追加 page.CloseAsync

RunBeforeUnloadfalse の場合、アンロードハンドラーを実行せず、ページが閉じられるのを待ちます。RunBeforeUnloadtrue の場合、メソッドはアンロードハンドラーを実行しますが、ページのクローズを待機しません

デフォルトでは、page.close()beforeunload ハンドラーを実行しません

RunBeforeUnload が true として渡された場合、beforeunload ダイアログが召喚される可能性があり、Page.Dialog イベントを介して手動で処理する必要があります。

使用法

await Page.CloseAsync(options);

引数

  • options PageCloseOptions? (オプション)
    • Reason string? (オプション)v1.40 で追加#

      ページを閉じることによって中断された操作に報告される理由。

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

      デフォルトは false です。beforeunload ページハンドラーを実行するかどうか。

戻り値


ContentAsync

v1.9 で追加 page.ContentAsync

doctype を含む、ページの完全な HTML コンテンツを取得します。

使用法

await Page.ContentAsync();

戻り値


Context

v1.9 で追加 page.Context

ページが属するブラウザコンテキストを取得します。

使用法

Page.Context

戻り値


DragAndDropAsync

v1.13 で追加 page.DragAndDropAsync

このメソッドは、ソース要素をターゲット要素にドラッグします。最初にソース要素に移動し、mousedown を実行してから、ターゲット要素に移動して mouseup を実行します。

使用法

await Page.DragAndDropAsync("#source", "#target");
// or specify exact positions relative to the top-left corners of the elements:
await Page.DragAndDropAsync("#source", "#target", new()
{
SourcePosition = new() { X = 34, Y = 7 },
TargetPosition = new() { X = 10, Y = 20 },
});

引数

  • source string#

    ドラッグする要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。

  • target string#

    ドロップ先の要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。

  • options PageDragAndDropOptions? (オプション)

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

      実行可能性チェックをバイパスするかどうか。デフォルトは false です。

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

      非推奨

      このオプションは効果がありません。

      このオプションは効果がありません。

    • SourcePosition SourcePosition? (オプション)v1.14 で追加#

      • X [float]

      • Y [float]

      要素のパディングボックスの左上隅を基準としたこの点で、ソース要素をクリックします。指定しない場合、要素の可視点が使用されます。

    • Strict bool? (オプション)v1.14 で追加#

      true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。

    • TargetPosition TargetPosition? (オプション)v1.14 で追加#

      • X [float]

      • Y [float]

      要素のパディングボックスの左上隅を基準としたこの点で、ターゲット要素にドロップします。指定しない場合、要素の可視点が使用されます。

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

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

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

      設定すると、このメソッドは 実行可能性チェックのみを実行し、アクションをスキップします。デフォルトは false です。アクションを実行せずに要素がアクションの準備が整うまで待機するのに役立ちます。

戻り値


EmulateMediaAsync

v1.9 で追加 page.EmulateMediaAsync

このメソッドは、media 引数を使用して CSS メディアタイプを変更するか、colorScheme 引数を使用して 'prefers-colors-scheme' メディア機能を変更します。

使用法

await page.EvaluateAsync("() => matchMedia('screen').matches");
// → true
await page.EvaluateAsync("() => matchMedia('print').matches");
// → false

await page.EmulateMediaAsync(new() { Media = Media.Print });
await page.EvaluateAsync("() => matchMedia('screen').matches");
// → false
await page.EvaluateAsync("() => matchMedia('print').matches");
// → true

await page.EmulateMediaAsync(new() { Media = Media.Screen });
await page.EvaluateAsync("() => matchMedia('screen').matches");
// → true
await page.EvaluateAsync("() => matchMedia('print').matches");
// → false
await page.EmulateMediaAsync(new() { ColorScheme = ColorScheme.Dark });
await page.EvaluateAsync("matchMedia('(prefers-color-scheme: dark)').matches");
// → true
await page.EvaluateAsync("matchMedia('(prefers-color-scheme: light)').matches");
// → false

引数

  • options PageEmulateMediaOptions? (オプション)
    • ColorScheme enum ColorScheme { Light, Dark, NoPreference, Null }? (オプション)v1.9 で追加#

      prefers-colors-scheme メディア機能をエミュレートします。サポートされている値は 'light' および 'dark' です。'Null' を渡すと、カラースキームエミュレーションが無効になります。'no-preference' は非推奨です。

    • Contrast enum Contrast { NoPreference, More, Null }? (オプション)v1.51 で追加#

    • ForcedColors enum ForcedColors { Active, None, Null }? (オプション)v1.15 で追加#

    • Media enum Media { Screen, Print, Null }? (オプション)v1.9 で追加#

      ページの CSS メディアタイプを変更します。許可される値は 'Screen', 'Print', 'Null' のみです。'Null' を渡すと、CSS メディアエミュレーションが無効になります。

    • ReducedMotion enum ReducedMotion { Reduce, NoPreference, Null }? (オプション)v1.12 で追加#

      'prefers-reduced-motion' メディア機能をエミュレートします。サポートされている値は 'reduce', 'no-preference' です。null を渡すと、モーション削減エミュレーションが無効になります。

戻り値


EvaluateAsync

v1.9 で追加 page.EvaluateAsync

expression 呼び出しの値を返します。

Page.EvaluateAsync() に渡された関数が Promise を返す場合、Page.EvaluateAsync() は Promise が解決されるのを待ってその値を返します。

Page.EvaluateAsync() に渡された関数が Serializable でない値を返す場合、Page.EvaluateAsync()undefined に解決されます。Playwright は、JSON でシリアライズできないいくつかの追加の値 (-0, NaN, Infinity, -Infinity) の転送もサポートしています。

使用法

expression に引数を渡す

var result = await page.EvaluateAsync<int>("([x, y]) => Promise.resolve(x * y)", new[] { 7, 8 });
Console.WriteLine(result);

関数の代わりに文字列を渡すこともできます。

Console.WriteLine(await page.EvaluateAsync<int>("1 + 2")); // prints "3"

ElementHandle インスタンスは、Page.EvaluateAsync() の引数として渡すことができます。

var bodyHandle = await page.EvaluateAsync("document.body");
var html = await page.EvaluateAsync<string>("([body, suffix]) => body.innerHTML + suffix", new object [] { bodyHandle, "hello" });
await bodyHandle.DisposeAsync();

引数

  • expression string#

    ブラウザコンテキストで評価される JavaScript 式。式が関数として評価される場合、関数は自動的に呼び出されます。

  • arg EvaluationArgument? (オプション)#

    expression に渡すオプションの引数。

戻り値

  • [object]#

EvaluateHandleAsync

v1.9 で追加 page.EvaluateHandleAsync

expression 呼び出しの値を JSHandle として返します。

Page.EvaluateAsync()Page.EvaluateHandleAsync() の唯一の違いは、Page.EvaluateHandleAsync()JSHandle を返すことです。

Page.EvaluateHandleAsync() に渡された関数が Promise を返す場合、Page.EvaluateHandleAsync() は Promise が解決されるのを待ってその値を返します。

使用法

// Handle for the window object.
var aWindowHandle = await page.EvaluateHandleAsync("() => Promise.resolve(window)");

関数の代わりに文字列を渡すこともできます。

var docHandle = await page.EvaluateHandleAsync("document"); // Handle for the `document`

JSHandle インスタンスは、Page.EvaluateHandleAsync() の引数として渡すことができます。

var handle = await page.EvaluateHandleAsync("() => document.body");
var resultHandle = await page.EvaluateHandleAsync("([body, suffix]) => body.innerHTML + suffix", new object[] { handle, "hello" });
Console.WriteLine(await resultHandle.JsonValueAsync<string>());
await resultHandle.DisposeAsync();

引数

  • expression string#

    ブラウザコンテキストで評価される JavaScript 式。式が関数として評価される場合、関数は自動的に呼び出されます。

  • arg EvaluationArgument? (オプション)#

    expression に渡すオプションの引数。

戻り値


ExposeBindingAsync

v1.9 で追加 page.ExposeBindingAsync

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

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

コンテキスト全体のバージョンについては、BrowserContext.ExposeBindingAsync() を参照してください。

Page.ExposeBindingAsync() を介してインストールされた関数は、ナビゲーション後も存続します。

使用法

ページ URL をページ内のすべてのフレームに公開する例

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

class PageExamples
{
public static async Task Main()
{
using var playwright = await Playwright.CreateAsync();
await using var browser = await playwright.Webkit.LaunchAsync(new()
{
Headless = false,
});
var page = await browser.NewPageAsync();

await page.ExposeBindingAsync("pageUrl", (source) => source.Page.Url);
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.ClickAsync("button");
}
}

引数

  • name string#

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

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

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

  • options PageExposeBindingOptions? (オプション)

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

      非推奨

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

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

戻り値


ExposeFunctionAsync

v1.9 で追加 page.ExposeFunctionAsync

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

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

コンテキスト全体で公開される関数については、BrowserContext.ExposeFunctionAsync() を参照してください。

Page.ExposeFunctionAsync() を介してインストールされた関数は、ナビゲーション後も存続します。

使用法

sha256 関数をページに追加する例

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

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

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

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.ClickAsync("button");
Console.WriteLine(await page.TextContentAsync("div"));
}
}

引数

  • name string#

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

  • callback Action<T, [TResult]>#

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

戻り値


Frame

v1.9 で追加 page.Frame

指定された条件に一致するフレームを返します。name または url のいずれかを指定する必要があります。

使用法

var frame = page.Frame("frame-name");
var frame = page.FrameByUrl(".*domain.*");

引数

  • name stringv1.9 で追加#

    iframename 属性で指定されたフレーム名。

戻り値


FrameByUrl

v1.9 で追加 page.FrameByUrl

一致する URL を持つフレームを返します。

使用法

Page.FrameByUrl(url);

引数

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

    グロブパターン、正規表現パターン、またはフレームの urlURL オブジェクトとして受け取る述語。

戻り値


FrameLocator

v1.17 で追加 page.FrameLocator

iframe を操作する場合、iframe に入り、その iframe 内の要素を選択できるようにするフレームロケーターを作成できます。

使用法

次のスニペットは、my-frame という ID を持つ iframe 内の「Submit」というテキストを持つ要素を検索します (例: <iframe id="my-frame">)。

var locator = page.FrameLocator("#my-iframe").GetByText("Submit");
await locator.ClickAsync();

引数

  • selector string#

    DOM 要素を解決するときに使用するセレクター。

戻り値


Frames

v1.9 で追加 page.Frames

ページにアタッチされているすべてのフレームの配列。

使用法

Page.Frames

戻り値


GetByAltText

追加バージョン: v1.27 page.GetByAltText

altテキストで要素を特定できるようにします。

使用法

例えば、このメソッドはaltテキスト "Playwright logo" で画像を検索します。

<img alt='Playwright logo'>
await page.GetByAltText("Playwright logo").ClickAsync();

引数

  • text string | Regex#

    要素を特定するためのテキスト。

  • options PageGetByAltTextOptions? (オプション)

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

      完全一致を検索するかどうか: 大文字と小文字を区別し、文字列全体が一致する必要があります。デフォルトは false です。正規表現で検索する場合は無視されます。完全一致でも空白文字はトリムされることに注意してください。

戻り値


GetByLabel

追加バージョン: v1.27 page.GetByLabel

関連付けられた<label>要素またはaria-labelledby要素のテキスト、またはaria-label属性によって入力要素を特定できるようにします。

使用法

例えば、このメソッドは次の DOM でラベル "Username" および "Password" によって入力を検索します。

<input aria-label="Username">
<label for="password-input">Password:</label>
<input id="password-input">
await page.GetByLabel("Username").FillAsync("john");
await page.GetByLabel("Password").FillAsync("secret");

引数

  • text string | Regex#

    要素を特定するためのテキスト。

  • options PageGetByLabelOptions? (オプション)

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

      完全一致を検索するかどうか: 大文字と小文字を区別し、文字列全体が一致する必要があります。デフォルトは false です。正規表現で検索する場合は無視されます。完全一致でも空白文字はトリムされることに注意してください。

戻り値


GetByPlaceholder

追加バージョン: v1.27 page.GetByPlaceholder

プレースホルダーテキストで入力要素を特定できるようにします。

使用法

例えば、次の DOM 構造を考えてみましょう。

<input type="email" placeholder="name@example.com" />

プレースホルダーテキストで特定した後、入力を埋めることができます。

await page
.GetByPlaceholder("name@example.com")
.FillAsync("playwright@microsoft.com");

引数

  • text string | Regex#

    要素を特定するためのテキスト。

  • options PageGetByPlaceholderOptions? (オプション)

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

      完全一致を検索するかどうか: 大文字と小文字を区別し、文字列全体が一致する必要があります。デフォルトは false です。正規表現で検索する場合は無視されます。完全一致でも空白文字はトリムされることに注意してください。

戻り値


GetByRole

追加バージョン: v1.27 page.GetByRole

ARIA roleARIA 属性、およびアクセシブルネームによって要素を特定できるようにします。

使用法

次の DOM 構造を考えてみましょう。

<h3>Sign up</h3>
<label>
<input type="checkbox" /> Subscribe
</label>
<br/>
<button>Submit</button>

各要素を暗黙的なロールで特定できます。

await Expect(Page
.GetByRole(AriaRole.Heading, new() { Name = "Sign up" }))
.ToBeVisibleAsync();

await page
.GetByRole(AriaRole.Checkbox, new() { Name = "Subscribe" })
.CheckAsync();

await page
.GetByRole(AriaRole.Button, new() {
NameRegex = new Regex("submit", RegexOptions.IgnoreCase)
})
.ClickAsync();

引数

  • role enum AriaRole { Alert, Alertdialog, Application, Article, Banner, Blockquote, Button, Caption, Cell, Checkbox, Code, Columnheader, Combobox, Complementary, Contentinfo, Definition, Deletion, Dialog, Directory, Document, Emphasis, Feed, Figure, Form, Generic, Grid, Gridcell, Group, Heading, Img, Insertion, Link, List, Listbox, Listitem, Log, Main, Marquee, Math, Meter, Menu, Menubar, Menuitem, Menuitemcheckbox, Menuitemradio, Navigation, None, Note, Option, Paragraph, Presentation, Progressbar, Radio, Radiogroup, Region, Row, Rowgroup, Rowheader, Scrollbar, Search, Searchbox, Separator, Slider, Spinbutton, Status, Strong, Subscript, Superscript, Switch, Tab, Table, Tablist, Tabpanel, Term, Textbox, Time, Timer, Toolbar, Tooltip, Tree, Treegrid, Treeitem }#

    必須の ARIA ロール。

  • options PageGetByRoleOptions? (オプション)

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

      通常、aria-checkedまたはネイティブの<input type=checkbox>コントロールによって設定される属性。

      aria-checkedの詳細をご覧ください。

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

      通常、aria-disabledまたはdisabledによって設定される属性。

      他のほとんどの属性とは異なり、disabledは DOM 階層を介して継承されます。aria-disabledの詳細をご覧ください。

    • Exact bool? (オプション)追加バージョン: v1.28#

      Name|NameRegexを完全一致させるかどうか: 大文字と小文字を区別し、文字列全体が一致する必要があります。デフォルトは false です。Name|NameRegexが正規表現の場合は無視されます。完全一致でも空白文字はトリムされることに注意してください。

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

      通常、aria-expandedによって設定される属性。

      aria-expandedの詳細をご覧ください。

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

      非表示要素を一致させるかどうかを制御するオプション。デフォルトでは、ARIA で定義されている非表示でない要素のみがロールセレクターによって一致されます。

      aria-hiddenの詳細をご覧ください。

    • Level int? (オプション)#

      通常、ロールheadinglistitemrowtreeitemに存在する数値属性。<h1>-<h6>要素にはデフォルト値があります。

      aria-levelの詳細をご覧ください。

    • Name|NameRegex string? | Regex? (オプション)#

      アクセシブルネームを一致させるためのオプション。デフォルトでは、大文字と小文字を区別せずに部分文字列を検索します。Exactを使用してこの動作を制御します。

      アクセシブルネームの詳細をご覧ください。

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

      通常、aria-pressedによって設定される属性。

      aria-pressedの詳細をご覧ください。

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

      通常、aria-selectedによって設定される属性。

      aria-selectedの詳細をご覧ください。

戻り値

詳細

ロールセレクターは、アクセシビリティ監査および適合性テストの代わりにはなりませんが、ARIA ガイドラインに関する早期フィードバックを提供します。

多くの html 要素には、ロールセレクターによって認識される暗黙的に定義されたロールがあります。すべてのサポートされているロールはこちらで確認できます。ARIA ガイドラインは、デフォルト値にrolearia-*属性を設定して暗黙的なロールと属性を複製することを推奨していません


GetByTestId

追加バージョン: v1.27 page.GetByTestId

テスト ID で要素を特定します。

使用法

次の DOM 構造を考えてみましょう。

<button data-testid="directions">Itinéraire</button>

テスト ID で要素を特定できます。

await page.GetByTestId("directions").ClickAsync();

引数

  • testId string | Regex#

    要素を特定するための ID。

戻り値

詳細

デフォルトでは、data-testid属性がテスト ID として使用されます。必要に応じて別のテスト ID 属性を設定するには、Selectors.SetTestIdAttribute()を使用します。


GetByText

追加バージョン: v1.27 page.GetByText

指定されたテキストを含む要素を特定できるようにします。

アクセシブルロールなどの別の条件で一致させ、テキストコンテンツでフィルタリングできるLocator.Filter()も参照してください。

使用法

次の DOM 構造を考えてみましょう。

<div>Hello <span>world</span></div>
<div>Hello</div>

テキストの部分文字列、完全な文字列、または正規表現で特定できます。

// Matches <span>
page.GetByText("world");

// Matches first <div>
page.GetByText("Hello world");

// Matches second <div>
page.GetByText("Hello", new() { Exact = true });

// Matches both <div>s
page.GetByText(new Regex("Hello"));

// Matches second <div>
page.GetByText(new Regex("^hello$", RegexOptions.IgnoreCase));

引数

  • text string | Regex#

    要素を特定するためのテキスト。

  • options PageGetByTextOptions? (オプション)

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

      完全一致を検索するかどうか: 大文字と小文字を区別し、文字列全体が一致する必要があります。デフォルトは false です。正規表現で検索する場合は無視されます。完全一致でも空白文字はトリムされることに注意してください。

戻り値

詳細

テキストによるマッチングは、完全一致の場合でも常に空白文字を正規化します。例えば、複数のスペースを1つに、改行をスペースに変換し、先頭と末尾の空白文字を無視します。

buttonおよびsubmitタイプの入力要素は、テキストコンテンツの代わりにvalueによって一致します。例えば、テキスト"Log in"で検索すると、<input type=button value="Log in">に一致します。


GetByTitle

追加バージョン: v1.27 page.GetByTitle

title 属性で要素を特定できるようにします。

使用法

次の DOM 構造を考えてみましょう。

<span title='Issues count'>25 issues</span>

タイトルテキストで特定した後、課題数を確認できます。

await Expect(Page.GetByTitle("Issues count")).toHaveText("25 issues");

引数

  • text string | Regex#

    要素を特定するためのテキスト。

  • options PageGetByTitleOptions? (オプション)

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

      完全一致を検索するかどうか: 大文字と小文字を区別し、文字列全体が一致する必要があります。デフォルトは false です。正規表現で検索する場合は無視されます。完全一致でも空白文字はトリムされることに注意してください。

戻り値


GoBackAsync

v1.9 で追加 page.GoBackAsync

メインリソースのレスポンスを返します。複数のリダイレクトの場合、ナビゲーションは最後のリダイレクトのレスポンスで解決されます。戻ることができない場合は、nullを返します。

履歴の前のページに移動します。

使用法

await Page.GoBackAsync(options);

引数

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

      操作の最大時間(ミリ秒単位)。デフォルトは 30 秒です。タイムアウトを無効にするには、0を渡します。デフォルト値は、BrowserContext.SetDefaultNavigationTimeout()BrowserContext.SetDefaultTimeout()Page.SetDefaultNavigationTimeout()またはPage.SetDefaultTimeout()メソッドを使用して変更できます。

    • WaitUntil enum WaitUntilState { Load, DOMContentLoaded, NetworkIdle, Commit }? (オプション)#

      操作が成功したと見なすタイミング。デフォルトはloadです。イベントは次のいずれかになります。

      • 'domcontentloaded' - DOMContentLoadedイベントが発生したときに操作が完了したと見なします。
      • 'load' - loadイベントが発生したときに操作が完了したと見なします。
      • 'networkidle' - 非推奨 ネットワーク接続が少なくとも500ミリ秒間ない場合に操作が完了したと見なします。テストにこのメソッドを使用せず、代わりに Web アサーションを使用して準備状態を評価してください。
      • 'commit' - ネットワークレスポンスを受信し、ドキュメントのロードが開始されたときに操作が完了したと見なします。

戻り値


GoForwardAsync

v1.9 で追加 page.GoForwardAsync

メインリソースのレスポンスを返します。複数のリダイレクトの場合、ナビゲーションは最後のリダイレクトのレスポンスで解決されます。進むことができない場合は、nullを返します。

履歴の次のページに移動します。

使用法

await Page.GoForwardAsync(options);

引数

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

      操作の最大時間(ミリ秒単位)。デフォルトは 30 秒です。タイムアウトを無効にするには、0を渡します。デフォルト値は、BrowserContext.SetDefaultNavigationTimeout()BrowserContext.SetDefaultTimeout()Page.SetDefaultNavigationTimeout()またはPage.SetDefaultTimeout()メソッドを使用して変更できます。

    • WaitUntil enum WaitUntilState { Load, DOMContentLoaded, NetworkIdle, Commit }? (オプション)#

      操作が成功したと見なすタイミング。デフォルトはloadです。イベントは次のいずれかになります。

      • 'domcontentloaded' - DOMContentLoadedイベントが発生したときに操作が完了したと見なします。
      • 'load' - loadイベントが発生したときに操作が完了したと見なします。
      • 'networkidle' - 非推奨 ネットワーク接続が少なくとも500ミリ秒間ない場合に操作が完了したと見なします。テストにこのメソッドを使用せず、代わりに Web アサーションを使用して準備状態を評価してください。
      • 'commit' - ネットワークレスポンスを受信し、ドキュメントのロードが開始されたときに操作が完了したと見なします。

戻り値


GotoAsync

v1.9 で追加 page.GotoAsync

メインリソースのレスポンスを返します。複数のリダイレクトの場合、ナビゲーションは最初のリダイレクト以外のレスポンスで解決されます。

このメソッドは、次の場合にエラーをスローします。

  • SSL エラーが発生した場合 (例: 自己署名証明書の場合)。
  • ターゲット URL が無効な場合。
  • Timeoutがナビゲーション中に超過した場合。
  • リモートサーバーが応答しないか、到達不能な場合。
  • メインリソースのロードに失敗した場合。

このメソッドは、リモートサーバーから有効な HTTP ステータスコード (404 "Not Found" や 500 "Internal Server Error" を含む) が返された場合、エラーをスローしません。このようなレスポンスのステータスコードは、Response.Statusを呼び出すことで取得できます。

このメソッドは、エラーをスローするか、メインリソースのレスポンスを返します。唯一の例外は、about:blankへのナビゲーション、または異なるハッシュを持つ同じ URL へのナビゲーションで、これは成功し、nullを返します。

ヘッドレスモードは、PDF ドキュメントへのナビゲーションをサポートしていません。アップストリームの問題を参照してください。

使用法

await Page.GotoAsync(url, options);

引数

  • url string#

    ページをナビゲートする URL。URL にはスキーム (例: https://) を含める必要があります。BaseURLがコンテキストオプションを介して提供され、渡された URL がパスである場合、new URL()コンストラクターを介してマージされます。

  • options PageGotoOptions? (オプション)

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

      Referer ヘッダー値。指定された場合、Page.SetExtraHTTPHeadersAsync()によって設定された referer ヘッダー値よりも優先されます。

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

      操作の最大時間(ミリ秒単位)。デフォルトは 30 秒です。タイムアウトを無効にするには、0を渡します。デフォルト値は、BrowserContext.SetDefaultNavigationTimeout()BrowserContext.SetDefaultTimeout()Page.SetDefaultNavigationTimeout()またはPage.SetDefaultTimeout()メソッドを使用して変更できます。

    • WaitUntil enum WaitUntilState { Load, DOMContentLoaded, NetworkIdle, Commit }? (オプション)#

      操作が成功したと見なすタイミング。デフォルトはloadです。イベントは次のいずれかになります。

      • 'domcontentloaded' - DOMContentLoadedイベントが発生したときに操作が完了したと見なします。
      • 'load' - loadイベントが発生したときに操作が完了したと見なします。
      • 'networkidle' - 非推奨 ネットワーク接続が少なくとも500ミリ秒間ない場合に操作が完了したと見なします。テストにこのメソッドを使用せず、代わりに Web アサーションを使用して準備状態を評価してください。
      • 'commit' - ネットワークレスポンスを受信し、ドキュメントのロードが開始されたときに操作が完了したと見なします。

戻り値


IsClosed

v1.9 で追加 page.IsClosed

ページが閉じられたことを示します。

使用法

Page.IsClosed

戻り値


Locator

v1.14 で追加 page.Locator

このメソッドは、このページ/フレームでアクションを実行するために使用できる要素ロケーターを返します。ロケーターは、アクションを実行する直前に要素に解決されるため、同じロケーターに対する一連のアクションは、実際には異なる DOM 要素で実行される可能性があります。これは、これらのアクション間の DOM 構造が変更された場合に発生します。

ロケーターの詳細はこちら.

使用法

Page.Locator(selector, options);

引数

  • selector string#

    DOM 要素を解決するときに使用するセレクター。

  • options PageLocatorOptions? (オプション)

    • Has Locator? (オプション)#

      この相対ロケーターに一致する要素を含む結果に、メソッドの結果を絞り込みます。例えば、text=Playwrightを持つarticleは、<article><div>Playwright</div></article>に一致します。

      内部ロケーターは、外部ロケーターに対して相対的である必要があり、ドキュメントルートではなく、外部ロケーターの一致からクエリが開始されます。例えば、<article><content><div>Playwright</div></content></article>divを持つcontentを見つけることができます。ただし、article divを持つcontentを探すことは失敗します。これは、内部ロケーターが相対的である必要があり、contentの外部の要素を使用すべきではないためです。

      外部ロケーターと内部ロケーターは、同じフレームに属している必要があることに注意してください。内部ロケーターは、FrameLocatorを含んではなりません。

    • HasNot Locator? (オプション)追加バージョン: v1.33#

      内部ロケーターに一致する要素を含まない要素を一致させます。内部ロケーターは、外部ロケーターに対してクエリされます。例えば、divを持たないarticleは、<article><span>Playwright</span></article>に一致します。

      外部ロケーターと内部ロケーターは、同じフレームに属している必要があることに注意してください。内部ロケーターは、FrameLocatorを含んではなりません。

    • HasNotText|HasNotTextRegex string? | Regex? (オプション)追加バージョン: v1.33#

      指定されたテキストを内部のどこかに (子要素または子孫要素にある可能性あり) 含まない要素を一致させます。stringが渡されると、大文字と小文字を区別せずに部分文字列を検索します。

    • HasText|HasTextRegex string? | Regex? (オプション)#

      指定されたテキストを内部のどこかに (子要素または子孫要素にある可能性あり) 含む要素を一致させます。stringが渡されると、大文字と小文字を区別せずに部分文字列を検索します。例えば、"Playwright"<article><div>Playwright</div></article>に一致します。

戻り値


MainFrame

v1.9 で追加 page.MainFrame

ページのメインフレーム。ページには、ナビゲーション中に永続化するメインフレームがあることが保証されています。

使用法

Page.MainFrame

戻り値


OpenerAsync

v1.9 で追加 page.OpenerAsync

ポップアップページのオープナーを返し、それ以外の場合はnullを返します。オープナーがすでに閉じられている場合は、nullを返します。

使用法

await Page.OpenerAsync();

戻り値


PauseAsync

v1.9 で追加 page.PauseAsync

スクリプトの実行を一時停止します。Playwright はスクリプトの実行を停止し、ユーザーがページオーバーレイの [再開] ボタンを押すか、DevTools コンソールでplaywright.resume()を呼び出すのを待ちます。

ユーザーは、一時停止中にセレクターを検査したり、手動ステップを実行したりできます。[再開] を押すと、一時停止した場所から元のスクリプトの実行が再開されます。

このメソッドでは、Playwright がヘッダーモードで、Headlessオプションが false の状態で開始されている必要があります。

使用法

await Page.PauseAsync();

戻り値


PdfAsync

v1.9 で追加 page.PdfAsync

PDF バッファーを返します。

page.pdf()は、print CSS メディアを使用してページの PDF を生成します。screenメディアで PDF を生成するには、page.pdf()を呼び出す前にPage.EmulateMediaAsync()を呼び出します。

デフォルトでは、page.pdf()は印刷用に変更された色で PDF を生成します。-webkit-print-color-adjustプロパティを使用して、正確な色のレンダリングを強制します。

使用法

// Generates a PDF with 'screen' media type
await page.EmulateMediaAsync(new() { Media = Media.Screen });
await page.PdfAsync(new() { Path = "page.pdf" });

WidthHeight、およびMarginオプションは、単位付きの値を許可します。単位なしの値はピクセルとして扱われます。

いくつかの例:

  • page.pdf({width: 100}) - 幅を 100 ピクセルに設定して印刷します
  • page.pdf({width: '100px'}) - 幅を 100 ピクセルに設定して印刷します
  • page.pdf({width: '10cm'}) - 幅を 10 センチメートルに設定して印刷します。

可能なすべての単位は次のとおりです。

  • px - ピクセル
  • in - インチ
  • cm - センチメートル
  • mm - ミリメートル

Formatオプションは次のとおりです。

  • Letter: 8.5 インチ x 11 インチ
  • Legal: 8.5 インチ x 14 インチ
  • Tabloid: 11 インチ x 17 インチ
  • Ledger: 17 インチ x 11 インチ
  • A0: 33.1 インチ x 46.8 インチ
  • A1: 23.4 インチ x 33.1 インチ
  • A2: 16.54 インチ x 23.4 インチ
  • A3: 11.7 インチ x 16.54 インチ
  • A4: 8.27 インチ x 11.7 インチ
  • A5: 5.83 インチ x 8.27 インチ
  • A6: 4.13 インチ x 5.83 インチ

HeaderTemplateおよびFooterTemplateマークアップには、次の制限があります。 > 1. テンプレート内のスクリプトタグは評価されません。 > 2. ページスタイルはテンプレート内では表示されません。

引数

  • options PagePdfOptions? (オプション)
    • DisplayHeaderFooter bool? (オプション)#

      ヘッダーとフッターを表示します。デフォルトはfalseです。

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

      印刷フッターの HTML テンプレート。HeaderTemplateと同じ形式を使用する必要があります。

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

      用紙フォーマット。設定した場合、WidthまたはHeightオプションよりも優先されます。デフォルトは 'Letter' です。

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

      印刷ヘッダーの HTML テンプレート。印刷値を挿入するために使用される次のクラスを含む有効な HTML マークアップである必要があります。

      • 'date' フォーマットされた印刷日
      • 'title' ドキュメントタイトル
      • 'url' ドキュメントの場所
      • 'pageNumber' 現在のページ番号
      • 'totalPages' ドキュメントの総ページ数
    • Height string? (オプション)#

      用紙の高さ。単位付きの値を許可します。

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

      用紙の向き。デフォルトはfalseです。

    • Margin Margin? (オプション)#

      • Top string? (オプション)

        上マージン。単位付きの値を許可します。デフォルトは0です。

      • Right string? (オプション)

        右マージン。単位付きの値を許可します。デフォルトは0です。

      • Bottom string? (オプション)

        下マージン。単位付きの値を許可します。デフォルトは0です。

      • Left string? (オプション)

        左マージン。単位付きの値を許可します。デフォルトは0です。

      用紙マージン。デフォルトはなしです。

    • Outline bool? (オプション)v1.42 で追加#

      ドキュメントのアウトラインを PDF に埋め込むかどうか。デフォルトはfalseです。

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

      印刷するページ範囲。例: '1-5, 8, 11-13'。デフォルトは空の文字列で、すべてのページを印刷することを意味します。

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

      PDF を保存するファイルパス。Pathが相対パスの場合、現在の作業ディレクトリからの相対パスとして解決されます。パスが指定されていない場合、PDF はディスクに保存されません。

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

      ページ内で宣言された CSS @page サイズは、WidthHeight、または Format オプションで宣言されたものよりも優先されます。デフォルトは false で、コンテンツは用紙サイズに合わせて拡大縮小されます。

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

      背景グラフィックを印刷します。デフォルトは false です。

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

      Web ページのレンダリングのスケール。デフォルトは 1 です。スケール量は 0.1 から 2 の間でなければなりません。

    • Tagged bool? (オプション)v1.42 で追加#

      タグ付き (アクセシブル) PDF を生成するかどうか。デフォルトは false です。

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

      用紙の幅。単位付きの値を指定できます。

戻り値


ReloadAsync

v1.9 で追加 page.ReloadAsync

このメソッドは、ユーザーがブラウザの更新をトリガーした場合と同じ方法で、現在のページをリロードします。メインリソースの応答を返します。複数のリダイレクトが発生した場合、ナビゲーションは最後のリダイレクトの応答で解決されます。

使用法

await Page.ReloadAsync(options);

引数

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

      操作の最大時間(ミリ秒単位)。デフォルトは 30 秒です。タイムアウトを無効にするには、0を渡します。デフォルト値は、BrowserContext.SetDefaultNavigationTimeout()BrowserContext.SetDefaultTimeout()Page.SetDefaultNavigationTimeout()またはPage.SetDefaultTimeout()メソッドを使用して変更できます。

    • WaitUntil enum WaitUntilState { Load, DOMContentLoaded, NetworkIdle, Commit }? (オプション)#

      操作が成功したと見なすタイミング。デフォルトはloadです。イベントは次のいずれかになります。

      • 'domcontentloaded' - DOMContentLoadedイベントが発生したときに操作が完了したと見なします。
      • 'load' - loadイベントが発生したときに操作が完了したと見なします。
      • 'networkidle' - 非推奨 ネットワーク接続が少なくとも500ミリ秒間ない場合に操作が完了したと見なします。テストにこのメソッドを使用せず、代わりに Web アサーションを使用して準備状態を評価してください。
      • 'commit' - ネットワークレスポンスを受信し、ドキュメントのロードが開始されたときに操作が完了したと見なします。

戻り値


RemoveLocatorHandlerAsync

v1.44 で追加 page.RemoveLocatorHandlerAsync

特定のロケーターに対して Page.AddLocatorHandlerAsync() によって追加されたすべてのロケーターハンドラーを削除します。

使用法

await Page.RemoveLocatorHandlerAsync(locator);

引数

戻り値


RequestGCAsync

追加: v1.48 page.RequestGCAsync

ページにガベージコレクションを実行するように要求します。到達不能なオブジェクトがすべて収集される保証はないことに注意してください。

これは、メモリリークの検出に役立ちます。たとえば、ページにリークしている可能性のある大きなオブジェクト 'suspect' がある場合、WeakRef を使用してリークしていないことを確認できます。

// 1. In your page, save a WeakRef for the "suspect".
await Page.EvaluateAsync("globalThis.suspectWeakRef = new WeakRef(suspect)");
// 2. Request garbage collection.
await Page.RequestGCAsync();
// 3. Check that weak ref does not deref to the original object.
Assert.True(await Page.EvaluateAsync("!globalThis.suspectWeakRef.deref()"));

使用法

await Page.RequestGCAsync();

戻り値


RouteAsync

v1.9 で追加 page.RouteAsync

ルーティングは、ページによって行われるネットワークリクエストを変更する機能を提供します。

ルーティングが有効になると、URL パターンに一致するすべてのリクエストは、続行、 fulfillment、または中止されない限り、停止します。

レスポンスがリダイレクトの場合、ハンドラーは最初の URL に対してのみ呼び出されます。

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

Page.RouteAsync() は、ポップアップページの最初のリクエストをインターセプトしません。代わりに BrowserContext.RouteAsync() を使用してください。

使用法

すべての画像リクエストを中止するナイーブなハンドラーの例

var page = await browser.NewPageAsync();
await page.RouteAsync("**/*.{png,jpg,jpeg}", async r => await r.AbortAsync());
await page.GotoAsync("https://www.microsoft.com");

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

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

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

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

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

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

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

引数

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

    ルーティング中に一致させる URL を受け取る glob パターン、正規表現パターン、または述語。コンテキストオプション経由で BaseURL が提供され、渡された URL がパスの場合、new URL() コンストラクターを介してマージされます。

  • handler Action<Route>#

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

  • options PageRouteOptions? (オプション)

    • Times int? (オプション)v1.15 で追加#

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

戻り値


RouteFromHARAsync

追加: v1.23 page.RouteFromHARAsync

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

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

使用法

await Page.RouteFromHARAsync(har, options);

引数

  • har string#

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

  • options PageRouteFromHAROptions? (オプション)

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

      • 'abort' に設定すると、HAR ファイルに見つからないリクエストはすべて中止されます。
      • 'fallback' に設定すると、見つからないリクエストはネットワークに送信されます。

      デフォルトは abort です。

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

      指定した場合、ファイルから提供する代わりに、指定された HAR を実際

    • UpdateContent enum RouteFromHarUpdateContentPolicy { Embed, Attach }? (optional)Added in: v1.32#

      Optional setting to control resource content management. If attach is specified, resources are persisted as separate files or entries in the ZIP archive. If embed is specified, content is stored inline the HAR file.

    • UpdateMode enum HarMode { Full, Minimal }? (optional)Added in: v1.32#

      When set to minimal, only record information necessary for routing from HAR. This omits sizes, timing, page, cookies, security and other types of HAR information that are not used when replaying from HAR. Defaults to minimal.

    • Url|UrlRegex string? | Regex? (optional)#

      A glob pattern, regular expression or predicate to match the request URL. Only requests with URL matching the pattern will be served from the HAR file. If not specified, all requests are served from the HAR file.

戻り値


RouteWebSocketAsync

追加: v1.48 page.RouteWebSocketAsync

This method allows to modify websocket connections that are made by the page.

Note that only WebSockets created after this method was called will be routed. It is recommended to call this method before navigating the page.

使用法

Below is an example of a simple mock that responds to a single message. See WebSocketRoute for more details and examples.

await page.RouteWebSocketAsync("/ws", ws => {
ws.OnMessage(frame => {
if (frame.Text == "request")
ws.Send("response");
});
});

引数

戻り値


RunAndWaitForConsoleMessageAsync

v1.9 で追加 page.RunAndWaitForConsoleMessageAsync

Performs action and waits for a ConsoleMessage to be logged by in the page. If predicate is provided, it passes ConsoleMessage value into the predicate function and waits for predicate(message) to return a truthy value. Will throw an error if the page is closed before the Page.Console event is fired.

使用法

await Page.RunAndWaitForConsoleMessageAsync(action, options);

引数

  • action Func<Task>v1.12 で追加#

    Action that triggers the event.

  • options PageRunAndWaitForConsoleMessageOptions? (optional)

    • Predicate Func<ConsoleMessage?, bool> (optional)#

      Receives the ConsoleMessage object and resolves to truthy value when the waiting should resolve.

    • Timeout [float]? (optional)#

      Maximum time to wait for in milliseconds. Defaults to 30000 (30 seconds). Pass 0 to disable timeout. The default value can be changed by using the BrowserContext.SetDefaultTimeout().

戻り値


WaitForConsoleMessageAsync

v1.9 で追加 page.WaitForConsoleMessageAsync

Performs action and waits for a ConsoleMessage to be logged by in the page. If predicate is provided, it passes ConsoleMessage value into the predicate function and waits for predicate(message) to return a truthy value. Will throw an error if the page is closed before the Page.Console event is fired.

使用法

await Page.WaitForConsoleMessageAsync(action, options);

引数

  • options PageRunAndWaitForConsoleMessageOptions? (optional)
    • Predicate Func<ConsoleMessage?, bool> (optional)#

      Receives the ConsoleMessage object and resolves to truthy value when the waiting should resolve.

    • Timeout [float]? (optional)#

      Maximum time to wait for in milliseconds. Defaults to 30000 (30 seconds). Pass 0 to disable timeout. The default value can be changed by using the BrowserContext.SetDefaultTimeout().

戻り値


RunAndWaitForDownloadAsync

v1.9 で追加 page.RunAndWaitForDownloadAsync

Performs action and waits for a new Download. If predicate is provided, it passes Download value into the predicate function and waits for predicate(download) to return a truthy value. Will throw an error if the page is closed before the download event is fired.

使用法

await Page.RunAndWaitForDownloadAsync(action, options);

引数

  • action Func<Task>v1.12 で追加#

    Action that triggers the event.

  • options PageRunAndWaitForDownloadOptions? (optional)

    • Predicate Func<Download?, bool> (optional)#

      Receives the Download object and resolves to truthy value when the waiting should resolve.

    • Timeout [float]? (optional)#

      Maximum time to wait for in milliseconds. Defaults to 30000 (30 seconds). Pass 0 to disable timeout. The default value can be changed by using the BrowserContext.SetDefaultTimeout().

戻り値


WaitForDownloadAsync

v1.9 で追加 page.WaitForDownloadAsync

Performs action and waits for a new Download. If predicate is provided, it passes Download value into the predicate function and waits for predicate(download) to return a truthy value. Will throw an error if the page is closed before the download event is fired.

使用法

await Page.WaitForDownloadAsync(action, options);

引数

  • options PageRunAndWaitForDownloadOptions? (optional)
    • Predicate Func<Download?, bool> (optional)#

      Receives the Download object and resolves to truthy value when the waiting should resolve.

    • Timeout [float]? (optional)#

      Maximum time to wait for in milliseconds. Defaults to 30000 (30 seconds). Pass 0 to disable timeout. The default value can be changed by using the BrowserContext.SetDefaultTimeout().

戻り値


RunAndWaitForFileChooserAsync

v1.9 で追加 page.RunAndWaitForFileChooserAsync

Performs action and waits for a new FileChooser to be created. If predicate is provided, it passes FileChooser value into the predicate function and waits for predicate(fileChooser) to return a truthy value. Will throw an error if the page is closed before the file chooser is opened.

使用法

await Page.RunAndWaitForFileChooserAsync(action, options);

引数

  • action Func<Task>v1.12 で追加#

    Action that triggers the event.

  • options PageRunAndWaitForFileChooserOptions? (optional)

    • Predicate Func<FileChooser?, bool> (optional)#

      Receives the FileChooser object and resolves to truthy value when the waiting should resolve.

    • Timeout [float]? (optional)#

      Maximum time to wait for in milliseconds. Defaults to 30000 (30 seconds). Pass 0 to disable timeout. The default value can be changed by using the BrowserContext.SetDefaultTimeout().

戻り値


WaitForFileChooserAsync

v1.9 で追加 page.WaitForFileChooserAsync

Performs action and waits for a new FileChooser to be created. If predicate is provided, it passes FileChooser value into the predicate function and waits for predicate(fileChooser) to return a truthy value. Will throw an error if the page is closed before the file chooser is opened.

使用法

await Page.WaitForFileChooserAsync(action, options);

引数

  • options PageRunAndWaitForFileChooserOptions? (optional)
    • Predicate Func<FileChooser?, bool> (optional)#

      Receives the FileChooser object and resolves to truthy value when the waiting should resolve.

    • Timeout [float]? (optional)#

      Maximum time to wait for in milliseconds. Defaults to 30000 (30 seconds). Pass 0 to disable timeout. The default value can be changed by using the BrowserContext.SetDefaultTimeout().

戻り値


RunAndWaitForPopupAsync

v1.9 で追加 page.RunAndWaitForPopupAsync

Performs action and waits for a popup Page. If predicate is provided, it passes [Popup] value into the predicate function and waits for predicate(page) to return a truthy value. Will throw an error if the page is closed before the popup event is fired.

使用法

await Page.RunAndWaitForPopupAsync(action, options);

引数

  • action Func<Task>v1.12 で追加#

    Action that triggers the event.

  • options PageRunAndWaitForPopupOptions? (optional)

    • Predicate Func<Page?, bool> (optional)#

      Receives the Page object and resolves to truthy value when the waiting should resolve.

    • Timeout [float]? (optional)#

      Maximum time to wait for in milliseconds. Defaults to 30000 (30 seconds). Pass 0 to disable timeout. The default value can be changed by using the BrowserContext.SetDefaultTimeout().

戻り値


WaitForPopupAsync

v1.9 で追加 page.WaitForPopupAsync

Performs action and waits for a popup Page. If predicate is provided, it passes [Popup] value into the predicate function and waits for predicate(page) to return a truthy value. Will throw an error if the page is closed before the popup event is fired.

使用法

await Page.WaitForPopupAsync(action, options);

引数

  • options PageRunAndWaitForPopupOptions? (optional)
    • Predicate Func<Page?, bool> (optional)#

      Receives the Page object and resolves to truthy value when the waiting should resolve.

    • Timeout [float]? (optional)#

      Maximum time to wait for in milliseconds. Defaults to 30000 (30 seconds). Pass 0 to disable timeout. The default value can be changed by using the BrowserContext.SetDefaultTimeout().

戻り値


RunAndWaitForRequestAsync

v1.9 で追加 page.RunAndWaitForRequestAsync

Waits for the matching request and returns it. See waiting for event for more details about events.

使用法

// Waits for the next request with the specified url.
await page.RunAndWaitForRequestAsync(async () =>
{
await page.GetByText("trigger request").ClickAsync();
}, "http://example.com/resource");

// Alternative way with a predicate.
await page.RunAndWaitForRequestAsync(async () =>
{
await page.GetByText("trigger request").ClickAsync();
}, request => request.Url == "https://example.com" && request.Method == "GET");

引数

  • action Func<Task>v1.12 で追加#

    Action that triggers the event.

  • urlOrPredicate string | Regex | Func<Request, bool>#

    Request URL string, regex or predicate receiving Request object. When a BaseURL via the context options was provided and the passed URL is a path, it gets merged via the new URL() constructor.

  • options PageRunAndWaitForRequestOptions? (optional)

    • Timeout [float]? (optional)#

      Maximum wait time in milliseconds, defaults to 30 seconds, pass 0 to disable the timeout. The default value can be changed by using the Page.SetDefaultTimeout() method.

戻り値


WaitForRequestAsync

v1.9 で追加 page.WaitForRequestAsync

Waits for the matching request and returns it. See waiting for event for more details about events.

使用法

// Waits for the next request with the specified url.
await page.RunAndWaitForRequestAsync(async () =>
{
await page.GetByText("trigger request").ClickAsync();
}, "http://example.com/resource");

// Alternative way with a predicate.
await page.RunAndWaitForRequestAsync(async () =>
{
await page.GetByText("trigger request").ClickAsync();
}, request => request.Url == "https://example.com" && request.Method == "GET");

引数

  • urlOrPredicate string | Regex | Func<Request, bool>#

    Request URL string, regex or predicate receiving Request object. When a BaseURL via the context options was provided and the passed URL is a path, it gets merged via the new URL() constructor.

  • options PageRunAndWaitForRequestOptions? (optional)

    • Timeout [float]? (optional)#

      Maximum wait time in milliseconds, defaults to 30 seconds, pass 0 to disable the timeout. The default value can be changed by using the Page.SetDefaultTimeout() method.

戻り値


RunAndWaitForRequestFinishedAsync

v1.12 で追加 page.RunAndWaitForRequestFinishedAsync

Performs action and waits for a Request to finish loading. If predicate is provided, it passes Request value into the predicate function and waits for predicate(request) to return a truthy value. Will throw an error if the page is closed before the Page.RequestFinished event is fired.

使用法

await Page.RunAndWaitForRequestFinishedAsync(action, options);

引数

  • action Func<Task>#

    Action that triggers the event.

  • options PageRunAndWaitForRequestFinishedOptions? (optional)

    • Predicate Func<Request?, bool> (optional)#

      Receives the Request object and resolves to truthy value when the waiting should resolve.

    • Timeout [float]? (optional)#

      Maximum time to wait for in milliseconds. Defaults to 30000 (30 seconds). Pass 0 to disable timeout. The default value can be changed by using the BrowserContext.SetDefaultTimeout().

戻り値


WaitForRequestFinishedAsync

v1.12 で追加 page.WaitForRequestFinishedAsync

Performs action and waits for a Request to finish loading. If predicate is provided, it passes Request value into the predicate function and waits for predicate(request) to return a truthy value. Will throw an error if the page is closed before the Page.RequestFinished event is fired.

使用法

await Page.WaitForRequestFinishedAsync(action, options);

引数

  • options PageRunAndWaitForRequestFinishedOptions? (optional)
    • Predicate Func<Request?, bool> (optional)#

      Receives the Request object and resolves to truthy value when the waiting should resolve.

    • Timeout [float]? (optional)#

      Maximum time to wait for in milliseconds. Defaults to 30000 (30 seconds). Pass 0 to disable timeout. The default value can be changed by using the BrowserContext.SetDefaultTimeout().

戻り値


RunAndWaitForResponseAsync

v1.9 で追加 page.RunAndWaitForResponseAsync

Returns the matched response. See waiting for event for more details about events.

使用法

// Waits for the next response with the specified url.
await page.RunAndWaitForResponseAsync(async () =>
{
await page.GetByText("trigger response").ClickAsync();
}, "http://example.com/resource");

// Alternative way with a predicate.
await page.RunAndWaitForResponseAsync(async () =>
{
await page.GetByText("trigger response").ClickAsync();
}, response => response.Url == "https://example.com" && response.Status == 200 && response.Request.Method == "GET");

引数

  • action Func<Task>v1.12 で追加#

    Action that triggers the event.

  • urlOrPredicate string | Regex | Func<Response, bool>#

    Request URL string, regex or predicate receiving Response object. When a BaseURL via the context options was provided and the passed URL is a path, it gets merged via the new URL() constructor.

  • options PageRunAndWaitForResponseOptions? (optional)

戻り値


WaitForResponseAsync

v1.9 で追加 page.WaitForResponseAsync

Returns the matched response. See waiting for event for more details about events.

使用法

// Waits for the next response with the specified url.
await page.RunAndWaitForResponseAsync(async () =>
{
await page.GetByText("trigger response").ClickAsync();
}, "http://example.com/resource");

// Alternative way with a predicate.
await page.RunAndWaitForResponseAsync(async () =>
{
await page.GetByText("trigger response").ClickAsync();
}, response => response.Url == "https://example.com" && response.Status == 200 && response.Request.Method == "GET");

引数

  • urlOrPredicate string | Regex | Func<Response, bool>#

    Request URL string, regex or predicate receiving Response object. When a BaseURL via the context options was provided and the passed URL is a path, it gets merged via the new URL() constructor.

  • options PageRunAndWaitForResponseOptions? (optional)

戻り値


RunAndWaitForWebSocketAsync

v1.9 で追加 page.RunAndWaitForWebSocketAsync

Performs action and waits for a new WebSocket. If predicate is provided, it passes WebSocket value into the predicate function and waits for predicate(webSocket) to return a truthy value. Will throw an error if the page is closed before the WebSocket event is fired.

使用法

await Page.RunAndWaitForWebSocketAsync(action, options);

引数

  • action Func<Task>v1.12 で追加#

    Action that triggers the event.

  • options PageRunAndWaitForWebSocketOptions? (optional)

    • Predicate Func<WebSocket?, bool> (optional)#

      Receives the WebSocket object and resolves to truthy value when the waiting should resolve.

    • Timeout [float]? (optional)#

      Maximum time to wait for in milliseconds. Defaults to 30000 (30 seconds). Pass 0 to disable timeout. The default value can be changed by using the BrowserContext.SetDefaultTimeout().

戻り値


WaitForWebSocketAsync

v1.9 で追加 page.WaitForWebSocketAsync

Performs action and waits for a new WebSocket. If predicate is provided, it passes WebSocket value into the predicate function and waits for predicate(webSocket) to return a truthy value. Will throw an error if the page is closed before the WebSocket event is fired.

使用法

await Page.WaitForWebSocketAsync(action, options);

引数

  • options PageRunAndWaitForWebSocketOptions? (optional)
    • Predicate Func<WebSocket?, bool> (optional)#

      Receives the WebSocket object and resolves to truthy value when the waiting should resolve.

    • Timeout [float]? (optional)#

      Maximum time to wait for in milliseconds. Defaults to 30000 (30 seconds). Pass 0 to disable timeout. The default value can be changed by using the BrowserContext.SetDefaultTimeout().

戻り値


RunAndWaitForWorkerAsync

v1.9 で追加 page.RunAndWaitForWorkerAsync

Performs action and waits for a new Worker. If predicate is provided, it passes Worker value into the predicate function and waits for predicate(worker) to return a truthy value. Will throw an error if the page is closed before the worker event is fired.

使用法

await Page.RunAndWaitForWorkerAsync(action, options);

引数

  • action Func<Task>v1.12 で追加#

    Action that triggers the event.

  • options PageRunAndWaitForWorkerOptions? (optional)

    • Predicate Func<Worker?, bool> (optional)#

      Receives the Worker object and resolves to truthy value when the waiting should resolve.

    • Timeout [float]? (optional)#

      Maximum time to wait for in milliseconds. Defaults to 30000 (30 seconds). Pass 0 to disable timeout. The default value can be changed by using the BrowserContext.SetDefaultTimeout().

戻り値


WaitForWorkerAsync

v1.9 で追加 page.WaitForWorkerAsync

Performs action and waits for a new Worker. If predicate is provided, it passes Worker value into the predicate function and waits for predicate(worker) to return a truthy value. Will throw an error if the page is closed before the worker event is fired.

使用法

await Page.WaitForWorkerAsync(action, options);

引数

  • options PageRunAndWaitForWorkerOptions? (optional)
    • Predicate Func<Worker?, bool> (optional)#

      Receives the Worker object and resolves to truthy value when the waiting should resolve.

    • Timeout [float]? (optional)#

      Maximum time to wait for in milliseconds. Defaults to 30000 (30 seconds). Pass 0 to disable timeout. The default value can be changed by using the BrowserContext.SetDefaultTimeout().

戻り値


ScreenshotAsync

v1.9 で追加 page.ScreenshotAsync

Returns the buffer with the captured screenshot.

使用法

await Page.ScreenshotAsync(options);

引数

  • options PageScreenshotOptions? (optional)
    • Animations enum ScreenshotAnimations { Disabled, Allow }? (optional)#

      When set to "disabled", stops CSS animations, CSS transitions and Web Animations. Animations get different treatment depending on their duration

      • finite animations are fast-forwarded to completion, so they'll fire transitionend event.
      • infinite animations are canceled to initial state, and then played over after the screenshot.

      Defaults to "allow" that leaves animations untouched.

    • Caret enum ScreenshotCaret { Hide, Initial }? (optional)#

      When set to "hide", screenshot will hide text caret. When set to "initial", text caret behavior will not be changed. Defaults to "hide".

    • Clip Clip? (optional)#

      • X [float]

        x-coordinate of top-left corner of clip area

      • Y [float]

        y-coordinate of top-left corner of clip area

      • Width [float]

        width of clipping area

      • Height [float]

        height of clipping area

      An object which specifies clipping of the resulting image.

    • FullPage bool? (optional)#

      When true, takes a screenshot of the full scrollable page, instead of the currently visible viewport. Defaults to false.

    • Mask IEnumerable?<Locator> (optional)#

      Specify locators that should be masked when the screenshot is taken. Masked elements will be overlaid with a pink box #FF00FF (customized by MaskColor) that completely covers its bounding box. The mask is also applied to invisible elements, see Matching only visible elements to disable that.

    • MaskColor string? (optional)Added in: v1.35#

      Specify the color of the overlay box for masked elements, in CSS color format. Default color is pink #FF00FF.

    • OmitBackground bool? (optional)#

      Hides default white background and allows capturing screenshots with transparency. Not applicable to jpeg images. Defaults to false.

    • Path string? (optional)#

      The file path to save the image to. The screenshot type will be inferred from file extension. If Path is a relative path, then it is resolved relative to the current working directory. If no path is provided, the image won't be saved to the disk.

    • Quality int? (optional)#

      The quality of the image, between 0-100. Not applicable to png images.

    • Scale enum ScreenshotScale { Css, Device }? (optional)#

      When set to "css", screenshot will have a single pixel per each css pixel on the page. For high-dpi devices, this will keep screenshots small. Using "device" option will produce a single pixel per each device pixel, so screenshots of high-dpi devices will be twice as large or even larger.

      Defaults to "device".

    • Style string? (optional)Added in: v1.41#

      Text of the stylesheet to apply while making the screenshot. This is where you can hide dynamic elements, make elements invisible or change their properties to help you creating repeatable screenshots. This stylesheet pierces the Shadow DOM and applies to the inner frames.

    • Timeout [float]? (optional)#

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

    • Type enum ScreenshotType { Png, Jpeg }? (optional)#

      Specify screenshot type, defaults to png.

戻り値


SetContentAsync

v1.9 で追加 page.SetContentAsync

This method internally calls document.write(), inheriting all its specific characteristics and behaviors.

使用法

await Page.SetContentAsync(html, options);

引数

  • html string#

    ページに割り当てる HTML マークアップ。

  • options PageSetContentOptions? (省略可能)

    • Timeout [float]? (省略可能)#

      操作の最大時間(ミリ秒単位)。デフォルトは 30 秒です。タイムアウトを無効にするには、0を渡します。デフォルト値は、BrowserContext.SetDefaultNavigationTimeout()BrowserContext.SetDefaultTimeout()Page.SetDefaultNavigationTimeout()またはPage.SetDefaultTimeout()メソッドを使用して変更できます。

    • WaitUntil enum WaitUntilState { Load, DOMContentLoaded, NetworkIdle, Commit }? (省略可能)#

      操作が成功したと見なすタイミング。デフォルトはloadです。イベントは次のいずれかになります。

      • 'domcontentloaded' - DOMContentLoadedイベントが発生したときに操作が完了したと見なします。
      • 'load' - loadイベントが発生したときに操作が完了したと見なします。
      • 'networkidle' - 非推奨 ネットワーク接続が少なくとも500ミリ秒間ない場合に操作が完了したと見なします。テストにこのメソッドを使用せず、代わりに Web アサーションを使用して準備状態を評価してください。
      • 'commit' - ネットワークレスポンスを受信し、ドキュメントのロードが開始されたときに操作が完了したと見なします。

戻り値


SetDefaultNavigationTimeout

v1.9 で追加 page.SetDefaultNavigationTimeout

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

使用法

Page.SetDefaultNavigationTimeout(timeout);

引数

  • timeout [float]#

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


SetDefaultTimeout

v1.9 で追加 page.SetDefaultTimeout

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

使用法

Page.SetDefaultTimeout(timeout);

引数

  • timeout [float]#

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


SetExtraHTTPHeadersAsync

v1.9 で追加 page.SetExtraHTTPHeadersAsync

追加の HTTP ヘッダーは、ページが開始するすべてのリクエストとともに送信されます。

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

使用法

await Page.SetExtraHTTPHeadersAsync(headers);

引数

  • headers IDictionary<string, string>#

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

戻り値


SetViewportSizeAsync

v1.9 で追加 page.SetViewportSizeAsync

単一のブラウザに複数のページがある場合、各ページは独自のビューポートサイズを持つことができます。ただし、Browser.NewContextAsync() を使用すると、コンテキスト内のすべてのページのビューポートサイズ(およびその他)を一度に設定できます。

Page.SetViewportSizeAsync() はページサイズを変更します。多くのウェブサイトは電話のサイズ変更を想定していないため、ページに移動する前にビューポートサイズを設定する必要があります。Page.SetViewportSizeAsync()screen サイズもリセットします。これらのプロパティをより細かく制御する必要がある場合は、screen パラメータと viewport パラメータを指定して Browser.NewContextAsync() を使用してください。

使用法

var page = await browser.NewPageAsync();
await page.SetViewportSizeAsync(640, 480);
await page.GotoAsync("https://www.microsoft.com");

引数

  • width intv1.10 で追加#

    ページ幅(ピクセル単位)。

  • height intv1.10 で追加#

    ページ高さ(ピクセル単位)。

戻り値


TitleAsync

v1.9 で追加 page.TitleAsync

ページのタイトルを返します。

使用法

await Page.TitleAsync();

戻り値


UnrouteAsync

v1.9 で追加 page.UnrouteAsync

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

使用法

await Page.UnrouteAsync(url, handler);

引数

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

    ルーティング中に一致させる URL を受け取る glob パターン、正規表現パターン、または述語。

  • handler Action<Route?> (省略可能)#

    リクエストをルーティングするためのオプションのハンドラー関数。

戻り値


UnrouteAllAsync

Added in: v1.41 page.UnrouteAllAsync

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

使用法

await Page.UnrouteAllAsync(options);

引数

  • options PageUnrouteAllOptions? (省略可能)
    • Behavior enum UnrouteBehavior { Wait, IgnoreErrors, Default }? (省略可能)#

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

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

戻り値


Url

v1.9 で追加 page.Url

使用法

Page.Url

戻り値


Video

v1.9 で追加 page.Video

このページに関連付けられた Video オブジェクト。

使用法

Page.Video

戻り値


ViewportSize

v1.9 で追加 page.ViewportSize

使用法

Page.ViewportSize

戻り値

  • ViewportSize?#
    • width int

      ページ幅(ピクセル単位)。

    • height int

      ページ高さ(ピクセル単位)。


WaitForFunctionAsync

v1.9 で追加 page.WaitForFunctionAsync

expression が真値を返すときに戻ります。真値の JSHandle に解決されます。

使用法

Page.WaitForFunctionAsync() は、ビューポートサイズの変更を監視するために使用できます。

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

class FrameExamples
{
public static async Task WaitForFunction()
{
using var playwright = await Playwright.CreateAsync();
await using var browser = await playwright.Webkit.LaunchAsync();
var page = await browser.NewPageAsync();
await page.SetViewportSizeAsync(50, 50);
await page.MainFrame.WaitForFunctionAsync("window.innerWidth < 100");
}
}

Page.WaitForFunctionAsync() 関数の述語に引数を渡すには

var selector = ".foo";
await page.WaitForFunctionAsync("selector => !!document.querySelector(selector)", selector);

引数

  • expression string#

    ブラウザコンテキストで評価される JavaScript 式。式が関数として評価される場合、関数は自動的に呼び出されます。

  • arg EvaluationArgument? (省略可能)#

    expression に渡すオプションの引数。

  • options PageWaitForFunctionOptions? (省略可能)

    • PollingInterval [float]? (省略可能)#

      指定された場合、関数が実行される間隔(ミリ秒単位)として扱われます。オプションが指定されていない場合、デフォルトでは expressionrequestAnimationFrame コールバックで実行されます。

    • Timeout [float]? (省略可能)#

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

戻り値


WaitForLoadStateAsync

v1.9 で追加 page.WaitForLoadStateAsync

必要なロード状態に達したときに戻ります。

これは、ページが必要なロード状態(デフォルトでは load)に達すると解決されます。このメソッドが呼び出されたときに、ナビゲーションがコミットされている必要があります。現在のドキュメントがすでに必要な状態に達している場合、すぐに解決されます。

Playwright は すべてのアクションの前に自動ウェイトするため、ほとんどの場合、このメソッドは必要ありません。

使用法

await page.GetByRole(AriaRole.Button).ClickAsync(); // Click triggers navigation.
await page.WaitForLoadStateAsync(); // The promise resolves after 'load' event.
var popup = await page.RunAndWaitForPopupAsync(async () =>
{
await page.GetByRole(AriaRole.Button).ClickAsync(); // click triggers the popup
});
// Wait for the "DOMContentLoaded" event.
await popup.WaitForLoadStateAsync(LoadState.DOMContentLoaded);
Console.WriteLine(await popup.TitleAsync()); // popup is ready to use.

引数

  • state enum LoadState { Load, DOMContentLoaded, NetworkIdle }? (省略可能)#

    待機するオプションのロード状態。デフォルトは load です。現在のドキュメントのロード中に状態がすでに到達している場合、メソッドはすぐに解決されます。次のいずれかを指定できます。

    • 'load' - load イベントが発行されるのを待ちます。
    • 'domcontentloaded' - DOMContentLoaded イベントが発行されるのを待ちます。
    • 'networkidle' - 非推奨 少なくとも 500 ミリ秒間ネットワーク接続がない状態になるまで待ちます。テストにはこのメソッドを使用せず、代わりにウェブアサーションに依存して準備状態を評価してください。
  • options PageWaitForLoadStateOptions? (省略可能)

戻り値


WaitForURLAsync

v1.11 で追加 page.WaitForURLAsync

メインフレームが指定された URL にナビゲートするのを待ちます。

使用法

await page.ClickAsync("a.delayed-navigation"); // clicking the link will indirectly cause a navigation
await page.WaitForURLAsync("**/target.html");

引数

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

    ナビゲーションを待機中に一致させる URL を受け取る glob パターン、正規表現パターン、または述語。パラメータがワイルドカード文字を含まない文字列である場合、メソッドは文字列と完全に等しい URL へのナビゲーションを待機することに注意してください。

  • options PageWaitForURLOptions? (省略可能)

    • Timeout [float]? (省略可能)#

      操作の最大時間(ミリ秒単位)。デフォルトは 30 秒です。タイムアウトを無効にするには、0を渡します。デフォルト値は、BrowserContext.SetDefaultNavigationTimeout()BrowserContext.SetDefaultTimeout()Page.SetDefaultNavigationTimeout()またはPage.SetDefaultTimeout()メソッドを使用して変更できます。

    • WaitUntil enum WaitUntilState { Load, DOMContentLoaded, NetworkIdle, Commit }? (省略可能)#

      操作が成功したと見なすタイミング。デフォルトはloadです。イベントは次のいずれかになります。

      • 'domcontentloaded' - DOMContentLoadedイベントが発生したときに操作が完了したと見なします。
      • 'load' - loadイベントが発生したときに操作が完了したと見なします。
      • 'networkidle' - 非推奨 ネットワーク接続が少なくとも500ミリ秒間ない場合に操作が完了したと見なします。テストにこのメソッドを使用せず、代わりに Web アサーションを使用して準備状態を評価してください。
      • 'commit' - ネットワークレスポンスを受信し、ドキュメントのロードが開始されたときに操作が完了したと見なします。

戻り値


Workers

v1.9 で追加 page.Workers

このメソッドは、ページに関連付けられたすべての専用 WebWorker を返します。

これには ServiceWorker は含まれていません。

使用法

Page.Workers

戻り値


Properties

APIRequest

v1.16 で追加 page.APIRequest

このページに関連付けられた API テストヘルパー。このメソッドは、ページのコンテキストで BrowserContext.APIRequest と同じインスタンスを返します。詳細については、BrowserContext.APIRequest を参照してください。

使用法

Page.APIRequest


Clock

v1.45 で追加 page.Clock

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

使用法

Page.Clock


Keyboard

v1.9 で追加 page.Keyboard

使用法

Page.Keyboard


Mouse

v1.9 で追加 page.Mouse

使用法

Page.Mouse


Touchscreen

v1.9 で追加 page.Touchscreen

使用法

Page.Touchscreen


Events

event Close

v1.9 で追加 page.event Close

ページが閉じるときに発行されます。

使用法

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

イベントデータ


event Console

v1.9 で追加 page.event Console

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

console.log に渡される引数は、ConsoleMessage イベントハンドラー引数で使用できます。

使用法

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

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

イベントデータ


event Crash

v1.9 で追加 page.event Crash

ページがクラッシュしたときに発行されます。ブラウザページは、メモリを過剰に割り当てようとするとクラッシュする可能性があります。ページがクラッシュすると、進行中および後続の操作は例外をスローします。

クラッシュに対処する最も一般的な方法は、例外をキャッチすることです。

try {
// Crash might happen during a click.
await page.ClickAsync("button");
// Or while waiting for an event.
await page.WaitForPopup();
} catch (PlaywrightException e) {
// When the page crashes, exception message contains "crash".
}

使用法

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

イベントデータ


event Dialog

v1.9 で追加 page.event Dialog

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

使用法

page.RequestFailed += (_, request) =>
{
Console.WriteLine(request.Url + " " + request.Failure);
};

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

イベントデータ


event DOMContentLoaded

v1.9 で追加 page.event DOMContentLoaded

JavaScript DOMContentLoaded イベントがディスパッチされたときに発行されます。

使用法

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

イベントデータ


event Download

v1.9 で追加 page.event Download

添付ファイルのダウンロードが開始されたときに発行されます。ユーザーは、渡された Download インスタンスを介して、ダウンロードされたコンテンツに対する基本的なファイル操作にアクセスできます。

使用法

Page.Download += async (_, download) => {};

イベントデータ


event FileChooser

v1.9 で追加 page.event FileChooser

<input type=file> をクリックした後など、ファイルチューザーが表示されるはずのときに発行されます。Playwright は、FileChooser.SetFilesAsync() を使用して入力ファイルを設定することにより、これに応答できます。これはその後アップロードできます。

page.FileChooser += (_, fileChooser) =>
{
fileChooser.SetFilesAsync(@"C:\temp\myfile.pdf");
};

使用法

Page.FileChooser += async (_, fileChooser) => {};

イベントデータ


event FrameAttached

v1.9 で追加 page.event FrameAttached

フレームがアタッチされたときに発行されます。

使用法

Page.FrameAttached += async (_, frame) => {};

イベントデータ


event FrameDetached

v1.9 で追加 page.event FrameDetached

フレームがデタッチされたときに発行されます。

使用法

Page.FrameDetached += async (_, frame) => {};

イベントデータ


event FrameNavigated

v1.9 で追加 page.event FrameNavigated

フレームが新しい URL にナビゲートされたときに発行されます。

使用法

Page.FrameNavigated += async (_, frame) => {};

イベントデータ


event Load

v1.9 で追加 page.event Load

JavaScript load イベントがディスパッチされたときに発行されます。

使用法

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

イベントデータ


event PageError

v1.9 で追加 page.event PageError

ページ内でキャッチされない例外が発生したときに発行されます。

// Log all uncaught errors to the terminal
page.PageError += (_, exception) =>
{
Console.WriteLine("Uncaught exception: " + exception);
};

使用法

Page.PageError += async (_, value) => {};

イベントデータ


event Popup

v1.9 で追加 page.event Popup

ページが新しいタブまたはウィンドウを開いたときに発行されます。このイベントは、BrowserContext.Page に加えて発行されますが、このページに関連するポップアップのみに発行されます。

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

var popup = await page.RunAndWaitForPopupAsync(async () =>
{
await page.GetByText("open the popup").ClickAsync();
});
Console.WriteLine(await popup.EvaluateAsync<string>("location.href"));

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

使用法

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

イベントデータ


event Request

v1.9 で追加 page.event Request

ページがリクエストを発行したときに発行されます。request オブジェクトは読み取り専用です。リクエストをインターセプトして変更するには、Page.RouteAsync() または BrowserContext.RouteAsync() を参照してください。

使用法

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

イベントデータ


event RequestFailed

v1.9 で追加 page.event RequestFailed

リクエストがタイムアウトするなど、リクエストが失敗した場合に発行されます。

404 や 503 などの HTTP エラー応答は、HTTP の観点からは依然として成功した応答であるため、リクエストは Page.RequestFinished イベントで完了し、Page.RequestFailed イベントでは完了しません。リクエストが失敗と見なされるのは、クライアントがサーバーから HTTP 応答を取得できない場合のみです(例:ネットワークエラー net::ERR_FAILED)。

使用法

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

イベントデータ


event RequestFinished

v1.9 で追加 page.event RequestFinished

レスポンスボディのダウンロード後にリクエストが正常に完了したときに発行されます。成功したレスポンスの場合、イベントのシーケンスは requestresponserequestfinished です。

使用法

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

イベントデータ


event Response

v1.9 で追加 page.event Response

response のステータスとヘッダーがリクエストに対して受信されたときに発行されます。成功したレスポンスの場合、イベントのシーケンスは requestresponserequestfinished です。

使用法

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

イベントデータ


event WebSocket

v1.9 で追加 page.event WebSocket

WebSocket リクエストが送信されたときに発行されます。

使用法

Page.WebSocket += async (_, webSocket) => {};

イベントデータ


event Worker

v1.9 で追加 page.event Worker

専用の WebWorker がページによって生成されたときに発行されます。

使用法

Page.Worker += async (_, worker) => {};

イベントデータ


Deprecated

Accessibility

v1.9 で追加 page.Accessibility
非推奨

このプロパティは推奨されません。ページのアクセシビリティをテストする必要がある場合は、Axe などの他のライブラリを使用してください。Axe との統合については、Node.js のガイドを参照してください。

使用法

Page.Accessibility


CheckAsync

v1.9 で追加 page.CheckAsync
非推奨

代わりにロケーターベースの Locator.CheckAsync() を使用してください。ロケーターの詳細をご覧ください。

このメソッドは、次の手順を実行して selector に一致する要素をチェックします。

  1. selector に一致する要素を見つけます。一致する要素がない場合は、一致する要素が DOM にアタッチされるまで待機します。
  2. 一致する要素がチェックボックスまたはラジオ入力であることを確認します。そうでない場合、このメソッドは例外をスローします。要素がすでにチェックされている場合、このメソッドはすぐに戻ります。
  3. Force オプションが設定されていない限り、一致する要素のアクション実行可能性チェックを待機します。チェック中に要素がデタッチされた場合、アクション全体が再試行されます。
  4. 必要に応じて、要素をビューにスクロールします。
  5. Page.Mouse を使用して、要素の中央をクリックします。
  6. 要素がチェックされていることを確認します。そうでない場合、このメソッドは例外をスローします。

指定された Timeout 中にすべての手順が完了しなかった場合、このメソッドは TimeoutError をスローします。ゼロタイムアウトを渡すと、これが無効になります。

使用法

await Page.CheckAsync(selector, options);

引数

  • selector string#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。

  • options PageCheckOptions? (省略可能)

    • Force bool? (省略可能)#

      実行可能性チェックをバイパスするかどうか。デフォルトは false です。

    • NoWaitAfter bool? (省略可能)#

      非推奨

      このオプションは効果がありません。

      このオプションは効果がありません。

    • Position Position? (省略可能)v1.11 で追加#

      • X [float]

      • Y [float]

      要素のパディングボックスの左上隅を基準に使用するポイント。指定しない場合は、要素の表示可能なポイントの一部を使用します。

    • Strict bool? (オプション)v1.14 で追加#

      true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。

    • Timeout [float]? (省略可能)#

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

    • Trial bool? (省略可能)v1.11 で追加#

      設定すると、このメソッドは 実行可能性チェックのみを実行し、アクションをスキップします。デフォルトは false です。アクションを実行せずに要素がアクションの準備が整うまで待機するのに役立ちます。

戻り値


ClickAsync

v1.9 で追加 page.ClickAsync
非推奨

代わりにロケーターベースの Locator.ClickAsync() を使用してください。ロケーターの詳細をご覧ください。

このメソッドは、次の手順を実行して selector に一致する要素をクリックします。

  1. selector に一致する要素を見つけます。一致する要素がない場合は、一致する要素が DOM にアタッチされるまで待機します。
  2. Force オプションが設定されていない限り、一致する要素のアクション実行可能性チェックを待機します。チェック中に要素がデタッチされた場合、アクション全体が再試行されます。
  3. 必要に応じて、要素をビューにスクロールします。
  4. Page.Mouse を使用して、要素の中央、または指定された Position をクリックします。
  5. NoWaitAfter オプションが設定されていない限り、開始されたナビゲーションが成功または失敗するのを待ちます。

指定されたタイムアウト時間内にすべてのステップが完了しなかった場合、このメソッドはTimeoutErrorをスローします。タイムアウトにゼロを渡すと、これは無効になります。

使用法

await Page.ClickAsync(selector, options);

引数

  • selector string#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。

  • options PageClickOptions? (任意)

    • Button enum MouseButton { Left, Right, Middle }? (任意)#

      デフォルトはleftです。

    • ClickCount int? (任意)#

      デフォルトは1です。UIEvent.detailを参照してください。

    • Delay [float]? (任意)#

      mousedownmouseupの間で待機する時間(ミリ秒単位)。デフォルトは0です。

    • Force bool? (任意)#

      実行可能性チェックをバイパスするかどうか。デフォルトは false です。

    • Modifiers IEnumerable?<enum KeyboardModifier { Alt, Control, ControlOrMeta, Meta, Shift }> (任意)#

      押す修飾キー。操作中にこれらの修飾キーのみが押されていることを保証し、その後、現在の修飾キーを復元します。指定しない場合、現在押されている修飾キーが使用されます。"ControlOrMeta"は、WindowsおよびLinuxでは"Control"、macOSでは"Meta"に解決されます。

    • NoWaitAfter bool? (任意)#

      非推奨

      このオプションは将来、デフォルトでtrueになります。

      ナビゲーションを開始するアクションは、これらのナビゲーションが発生し、ページがロードを開始するのを待機しています。このフラグを設定することで、待機をオプトアウトできます。このオプションは、アクセスできないページにナビゲートする場合など、例外的なケースでのみ必要になります。デフォルトはfalseです。

    • Position Position? (任意)#

      • X [float]

      • Y [float]

      要素のパディングボックスの左上隅を基準に使用するポイント。指定しない場合は、要素の表示可能なポイントの一部を使用します。

    • Strict bool? (オプション)v1.14 で追加#

      true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。

    • Timeout [float]? (任意)#

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

    • Trial bool? (省略可能)v1.11 で追加#

      設定した場合、このメソッドはアクション実行可能性チェックのみを実行し、アクションをスキップします。デフォルトはfalseです。アクションを実行せずに、要素がアクションの準備ができるまで待機するのに役立ちます。キーボードmodifiersは、それらのキーが押されている場合にのみ表示される要素をテストできるように、trialに関係なく押されることに注意してください。

戻り値


DblClickAsync

v1.9 で追加 page.DblClickAsync
非推奨

ロケーターベースのLocator.DblClickAsync()を代わりに使用してください。ロケーターの詳細をご覧ください。

このメソッドは、selectorに一致する要素をダブルクリックするために、次のステップを実行します。

  1. selectorに一致する要素を検索します。一致する要素がない場合は、一致する要素がDOMにアタッチされるまで待機します。
  2. アクション実行可能性チェックがForceオプションが設定されていない限り、一致した要素に対して実行されるのを待機します。チェック中に要素がデタッチされた場合、アクション全体が再試行されます。
  3. 必要に応じて、要素をビューにスクロールします。
  4. Page.Mouseを使用して、要素の中央、または指定されたPositionでダブルクリックします。

指定されたタイムアウト時間内にすべてのステップが完了しなかった場合、このメソッドはTimeoutErrorをスローします。タイムアウトにゼロを渡すと、これは無効になります。

page.dblclick()は、2つのclickイベントと1つのdblclickイベントをディスパッチします。

使用法

await Page.DblClickAsync(selector, options);

引数

  • selector string#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。

  • options PageDblClickOptions? (任意)

    • Button enum MouseButton { Left, Right, Middle }? (任意)#

      デフォルトはleftです。

    • Delay [float]? (任意)#

      mousedownmouseupの間で待機する時間(ミリ秒単位)。デフォルトは0です。

    • Force bool? (任意)#

      実行可能性チェックをバイパスするかどうか。デフォルトは false です。

    • Modifiers IEnumerable?<enum KeyboardModifier { Alt, Control, ControlOrMeta, Meta, Shift }> (任意)#

      押す修飾キー。操作中にこれらの修飾キーのみが押されていることを保証し、その後、現在の修飾キーを復元します。指定しない場合、現在押されている修飾キーが使用されます。"ControlOrMeta"は、WindowsおよびLinuxでは"Control"、macOSでは"Meta"に解決されます。

    • NoWaitAfter bool? (任意)#

      非推奨

      このオプションは効果がありません。

      このオプションは効果がありません。

    • Position Position? (任意)#

      • X [float]

      • Y [float]

      要素のパディングボックスの左上隅を基準に使用するポイント。指定しない場合は、要素の表示可能なポイントの一部を使用します。

    • Strict bool? (オプション)v1.14 で追加#

      true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。

    • Timeout [float]? (任意)#

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

    • Trial bool? (省略可能)v1.11 で追加#

      設定した場合、このメソッドはアクション実行可能性チェックのみを実行し、アクションをスキップします。デフォルトはfalseです。アクションを実行せずに、要素がアクションの準備ができるまで待機するのに役立ちます。キーボードmodifiersは、それらのキーが押されている場合にのみ表示される要素をテストできるように、trialに関係なく押されることに注意してください。

戻り値


DispatchEventAsync

v1.9 で追加 page.DispatchEventAsync
非推奨

ロケーターベースのLocator.DispatchEventAsync()を代わりに使用してください。ロケーターの詳細をご覧ください。

以下のスニペットは、要素にclickイベントをディスパッチします。要素の可視性の状態に関係なく、clickがディスパッチされます。これは、element.click()を呼び出すことと同等です。

使用法

await page.DispatchEventAsync("button#submit", "click");

内部的には、指定されたtypeに基づいてイベントのインスタンスを作成し、eventInitプロパティで初期化し、要素にディスパッチします。イベントは、デフォルトでcomposedcancelable、およびバブルアップします。

eventInitはイベント固有であるため、初期プロパティのリストについてはイベントのドキュメントを参照してください。

ライブオブジェクトをイベントに渡したい場合は、JSHandleをプロパティ値として指定することもできます。

var dataTransfer = await page.EvaluateHandleAsync("() => new DataTransfer()");
await page.DispatchEventAsync("#source", "dragstart", new { dataTransfer });

引数

  • selector string#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。

  • type string#

    DOMイベントタイプ: "click""dragstart"など。

  • eventInit EvaluationArgument? (任意)#

    オプションのイベント固有の初期化プロパティ。

  • options PageDispatchEventOptions? (任意)

    • Strict bool? (オプション)v1.14 で追加#

      true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。

    • Timeout [float]? (任意)#

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

戻り値


EvalOnSelectorAsync

v1.9 で追加 page.EvalOnSelectorAsync
非推奨

このメソッドは、要素がアクション実行可能性チェックに合格するのを待機しないため、テストが不安定になる可能性があります。代わりに、Locator.EvaluateAsync()、他のLocatorヘルパーメソッド、またはWebファーストのアサーションを使用してください。

このメソッドは、ページ内で指定されたセレクターに一致する要素を見つけ、それを最初の引数としてexpressionに渡します。セレクターに一致する要素がない場合、メソッドはエラーをスローします。expressionの値を返します。

expressionPromiseを返す場合、Page.EvalOnSelectorAsync()はPromiseが解決されるのを待って、その値を返します。

使用法

var searchValue = await page.EvalOnSelectorAsync<string>("#search", "el => el.value");
var preloadHref = await page.EvalOnSelectorAsync<string>("link[rel=preload]", "el => el.href");
var html = await page.EvalOnSelectorAsync(".main-container", "(e, suffix) => e.outerHTML + suffix", "hello");

引数

  • selector string#

    クエリするセレクター。

  • expression string#

    ブラウザコンテキストで評価される JavaScript 式。式が関数として評価される場合、関数は自動的に呼び出されます。

  • arg EvaluationArgument? (任意)#

    expressionに渡すオプションの引数。

  • options PageEvalOnSelectorOptions? (任意)

    • Strict bool? (オプション)v1.14 で追加#

      true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。

戻り値

  • [object]#

EvalOnSelectorAllAsync

v1.9 で追加 page.EvalOnSelectorAllAsync
非推奨

ほとんどの場合、Locator.EvaluateAllAsync()、他のLocatorヘルパーメソッド、およびWebファーストのアサーションの方が適しています。

このメソッドは、ページ内で指定されたセレクターに一致するすべての要素を見つけ、一致した要素の配列を最初の引数としてexpressionに渡します。expressionの呼び出しの結果を返します。

expressionPromiseを返す場合、Page.EvalOnSelectorAllAsync()はPromiseが解決されるのを待って、その値を返します。

使用法

var divsCount = await page.EvalOnSelectorAllAsync<bool>("div", "(divs, min) => divs.length >= min", 10);

引数

  • selector string#

    クエリするセレクター。

  • expression string#

    ブラウザコンテキストで評価される JavaScript 式。式が関数として評価される場合、関数は自動的に呼び出されます。

  • arg EvaluationArgument? (任意)#

    expressionに渡すオプションの引数。

戻り値

  • [object]#

FillAsync

v1.9 で追加 page.FillAsync
非推奨

ロケーターベースのLocator.FillAsync()を代わりに使用してください。ロケーターの詳細をご覧ください。

このメソッドは、selectorに一致する要素を待機し、アクション実行可能性チェックを待機し、要素をフォーカスし、入力し、入力後にinputイベントをトリガーします。入力フィールドをクリアするには、空の文字列を渡すことができることに注意してください。

ターゲット要素が<input><textarea>、または[contenteditable]要素でない場合、このメソッドはエラーをスローします。ただし、要素が、関連付けられたcontrolを持つ<label>要素内にある場合、代わりにコントロールが入力されます。

きめ細かいキーボードイベントを送信するには、Locator.PressSequentiallyAsync()を使用してください。

使用法

await Page.FillAsync(selector, value, options);

引数

  • selector string#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。

  • value string#

    <input><textarea>、または[contenteditable]要素に入力する値。

  • options PageFillOptions? (任意)

    • Force bool? (任意)v1.13 で追加#

      実行可能性チェックをバイパスするかどうか。デフォルトは false です。

    • NoWaitAfter bool? (任意)#

      非推奨

      このオプションは効果がありません。

      このオプションは効果がありません。

    • Strict bool? (オプション)v1.14 で追加#

      true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。

    • Timeout [float]? (任意)#

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

戻り値


FocusAsync

v1.9 で追加 page.FocusAsync
非推奨

ロケーターベースのLocator.FocusAsync()を代わりに使用してください。ロケーターの詳細をご覧ください。

このメソッドは、selectorを持つ要素を取得し、フォーカスします。selectorに一致する要素がない場合、メソッドは一致する要素がDOMに表示されるまで待機します。

使用法

await Page.FocusAsync(selector, options);

引数

  • selector string#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。

  • options PageFocusOptions? (任意)

    • Strict bool? (オプション)v1.14 で追加#

      true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。

    • Timeout [float]? (任意)#

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

戻り値


GetAttributeAsync

v1.9 で追加 page.GetAttributeAsync
非推奨

ロケーターベースのLocator.GetAttributeAsync()を代わりに使用してください。ロケーターの詳細をご覧ください。

要素の属性値を返します。

使用法

await Page.GetAttributeAsync(selector, name, options);

引数

  • selector string#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。

  • name string#

    値を取得する属性名。

  • options PageGetAttributeOptions? (任意)

    • Strict bool? (オプション)v1.14 で追加#

      true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。

    • Timeout [float]? (任意)#

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

戻り値


HoverAsync

v1.9 で追加 page.HoverAsync
非推奨

ロケーターベースのLocator.HoverAsync()を代わりに使用してください。ロケーターの詳細をご覧ください。

このメソッドは、selectorに一致する要素にホバーするために、次のステップを実行します。

  1. selectorに一致する要素を検索します。一致する要素がない場合は、一致する要素がDOMにアタッチされるまで待機します。
  2. アクション実行可能性チェックがForceオプションが設定されていない限り、一致した要素に対して実行されるのを待機します。チェック中に要素がデタッチされた場合、アクション全体が再試行されます。
  3. 必要に応じて、要素をビューにスクロールします。
  4. Page.Mouseを使用して、要素の中央、または指定されたPosition上にホバーします。

指定されたタイムアウト時間内にすべてのステップが完了しなかった場合、このメソッドはTimeoutErrorをスローします。タイムアウトにゼロを渡すと、これは無効になります。

使用法

await Page.HoverAsync(selector, options);

引数

  • selector string#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。

  • options PageHoverOptions? (任意)

    • Force bool? (任意)#

      実行可能性チェックをバイパスするかどうか。デフォルトは false です。

    • Modifiers IEnumerable?<enum KeyboardModifier { Alt, Control, ControlOrMeta, Meta, Shift }> (任意)#

      押す修飾キー。操作中にこれらの修飾キーのみが押されていることを保証し、その後、現在の修飾キーを復元します。指定しない場合、現在押されている修飾キーが使用されます。"ControlOrMeta"は、WindowsおよびLinuxでは"Control"、macOSでは"Meta"に解決されます。

    • NoWaitAfter bool? (オプション)追加バージョン: v1.28#

      非推奨

      このオプションは効果がありません。

      このオプションは効果がありません。

    • Position Position? (任意)#

      • X [float]

      • Y [float]

      要素のパディングボックスの左上隅を基準に使用するポイント。指定しない場合は、要素の表示可能なポイントの一部を使用します。

    • Strict bool? (オプション)v1.14 で追加#

      true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。

    • Timeout [float]? (任意)#

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

    • Trial bool? (省略可能)v1.11 で追加#

      設定した場合、このメソッドはアクション実行可能性チェックのみを実行し、アクションをスキップします。デフォルトはfalseです。アクションを実行せずに、要素がアクションの準備ができるまで待機するのに役立ちます。キーボードmodifiersは、それらのキーが押されている場合にのみ表示される要素をテストできるように、trialに関係なく押されることに注意してください。

戻り値


InnerHTMLAsync

v1.9 で追加 page.InnerHTMLAsync
非推奨

ロケーターベースのLocator.InnerHTMLAsync()を代わりに使用してください。ロケーターの詳細をご覧ください。

element.innerHTMLを返します。

使用法

await Page.InnerHTMLAsync(selector, options);

引数

  • selector string#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。

  • options PageInnerHTMLOptions? (任意)

    • Strict bool? (オプション)v1.14 で追加#

      true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。

    • Timeout [float]? (任意)#

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

戻り値


InnerTextAsync

v1.9 で追加 page.InnerTextAsync
非推奨

ロケーターベースのLocator.InnerTextAsync()を代わりに使用してください。ロケーターの詳細をご覧ください。

element.innerTextを返します。

使用法

await Page.InnerTextAsync(selector, options);

引数

  • selector string#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。

  • options PageInnerTextOptions? (任意)

    • Strict bool? (オプション)v1.14 で追加#

      true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。

    • Timeout [float]? (任意)#

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

戻り値


InputValueAsync

v1.13 で追加 page.InputValueAsync
非推奨

ロケーターベースのLocator.InputValueAsync()を代わりに使用してください。ロケーターの詳細をご覧ください。

選択された<input><textarea>、または<select>要素のinput.valueを返します。

入力要素以外の場合は例外をスローします。ただし、要素が、関連付けられたcontrolを持つ<label>要素内にある場合、コントロールの値を返します。

使用法

await Page.InputValueAsync(selector, options);

引数

  • selector string#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。

  • options PageInputValueOptions? (任意)

    • Strict bool? (オプション)v1.14 で追加#

      true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。

    • Timeout [float]? (任意)#

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

戻り値


IsCheckedAsync

v1.9 で追加 page.IsCheckedAsync
非推奨

ロケーターベースのLocator.IsCheckedAsync()を代わりに使用してください。ロケーターの詳細をご覧ください。

要素がチェックされているかどうかを返します。要素がチェックボックスまたはラジオ入力でない場合は例外をスローします。

使用法

await Page.IsCheckedAsync(selector, options);

引数

  • selector string#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。

  • options PageIsCheckedOptions? (任意)

    • Strict bool? (オプション)v1.14 で追加#

      true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。

    • Timeout [float]? (任意)#

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

戻り値


IsDisabledAsync

v1.9 で追加 page.IsDisabledAsync
非推奨

ロケーターベースのLocator.IsDisabledAsync()を代わりに使用してください。ロケーターの詳細をご覧ください。

要素が無効になっているかどうか、つまり有効の反対を返します。

使用法

await Page.IsDisabledAsync(selector, options);

引数

  • selector string#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。

  • options PageIsDisabledOptions? (任意)

    • Strict bool? (オプション)v1.14 で追加#

      true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。

    • Timeout [float]? (任意)#

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

戻り値


IsEditableAsync

v1.9 で追加 page.IsEditableAsync
非推奨

ロケーターベースのLocator.IsEditableAsync()を代わりに使用してください。ロケーターの詳細をご覧ください。

要素が編集可能かどうかを返します。

使用法

await Page.IsEditableAsync(selector, options);

引数

  • selector string#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。

  • options PageIsEditableOptions? (任意)

    • Strict bool? (オプション)v1.14 で追加#

      true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。

    • Timeout [float]? (任意)#

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

戻り値


IsEnabledAsync

v1.9 で追加 page.IsEnabledAsync
非推奨

ロケーターベースのLocator.IsEnabledAsync()を代わりに使用してください。ロケーターの詳細をご覧ください。

要素が有効かどうかを返します。

使用法

await Page.IsEnabledAsync(selector, options);

引数

  • selector string#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。

  • options PageIsEnabledOptions? (任意)

    • Strict bool? (オプション)v1.14 で追加#

      true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。

    • Timeout [float]? (任意)#

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

戻り値


IsHiddenAsync

v1.9 で追加 page.IsHiddenAsync
非推奨

ロケーターベースのLocator.IsHiddenAsync()を代わりに使用してください。ロケーターの詳細をご覧ください。

要素が非表示かどうか、つまり可視の反対を返します。selectorがどの要素にも一致しない場合、非表示と見なされます。

使用法

await Page.IsHiddenAsync(selector, options);

引数

  • selector string#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。

  • options PageIsHiddenOptions? (任意)

    • Strict bool? (オプション)v1.14 で追加#

      true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。

    • Timeout [float]? (任意)#

      非推奨

      このオプションは無視されます。Page.IsHiddenAsync()は、要素が非表示になるのを待機せず、すぐに戻ります。

戻り値


IsVisibleAsync

v1.9 で追加 page.IsVisibleAsync
非推奨

ロケーターベースのLocator.IsVisibleAsync()を代わりに使用してください。ロケーターの詳細をご覧ください。

要素が可視であるかどうかを返します。selector は、どの要素にも一致しない場合、不可視とみなされます。

使用法

await Page.IsVisibleAsync(selector, options);

引数

  • selector string#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。

  • options PageIsVisibleOptions? (任意)

    • Strict bool? (オプション)v1.14 で追加#

      true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。

    • Timeout [float]? (任意)#

      非推奨

      このオプションは無視されます。Page.IsVisibleAsync() は、要素が可視になるのを待たずに、すぐに戻ります。

戻り値


PressAsync

v1.9 で追加 page.PressAsync
非推奨

代わりにロケーターベースの Locator.PressAsync() を使用してください。ロケーターの詳細をお読みください。

要素にフォーカスを当ててから、Keyboard.DownAsync()Keyboard.UpAsync() を使用します。

key は、意図する keyboardEvent.key の値、またはテキストを生成するための単一の文字を指定できます。key 値のスーパーセットは、こちらにあります。キーの例としては、以下のようなものがあります。

F1 - F12, Digit0- Digit9, KeyA- KeyZ, Backquote, Minus, Equal, Backslash, Backspace, Tab, Delete, Escape, ArrowDown, End, Enter, Home, Insert, PageDown, PageUp, ArrowRight, ArrowUp など。

次の修飾ショートカットもサポートされています:Shift, Control, Alt, Meta, ShiftLeft, ControlOrMetaControlOrMeta は、Windows および Linux では Control に、macOS では Meta に解決されます。

Shift を押したままにすると、key に対応するテキストが、大文字で入力されます。

key が単一の文字である場合、大文字と小文字が区別されます。したがって、aA の値は、それぞれ異なるテキストを生成します。

key: "Control+o", key: "Control++, key: "Control+Shift+T" などのショートカットもサポートされています。修飾子を指定すると、修飾子が押されたままになり、その後のキーが押されます。

使用法

var page = await browser.NewPageAsync();
await page.GotoAsync("https://keycode.info");
await page.PressAsync("body", "A");
await page.ScreenshotAsync(new() { Path = "A.png" });
await page.PressAsync("body", "ArrowLeft");
await page.ScreenshotAsync(new() { Path = "ArrowLeft.png" });
await page.PressAsync("body", "Shift+O");
await page.ScreenshotAsync(new() { Path = "O.png" });

引数

  • selector string#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。

  • key string#

    押すキーの名前、または ArrowLefta のように生成する文字。

  • options PagePressOptions? (任意)

    • Delay [float]? (任意)#

      keydownkeyup の間の待ち時間(ミリ秒単位)。デフォルトは 0 です。

    • NoWaitAfter bool? (任意)#

      非推奨

      このオプションは将来、デフォルトでtrueになります。

      ナビゲーションを開始するアクションは、これらのナビゲーションが発生し、ページがロードを開始するのを待機しています。このフラグを設定することで、待機をオプトアウトできます。このオプションは、アクセスできないページにナビゲートする場合など、例外的なケースでのみ必要になります。デフォルトはfalseです。

    • Strict bool? (オプション)v1.14 で追加#

      true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。

    • Timeout [float]? (任意)#

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

戻り値


QuerySelectorAsync

v1.9 で追加 page.QuerySelectorAsync
非推奨

代わりにロケーターベースの Page.Locator() を使用してください。ロケーターの詳細をお読みください。

このメソッドは、ページ内で指定されたセレクターに一致する要素を検索します。セレクターに一致する要素がない場合、戻り値は null になります。ページ上の要素を待機するには、Locator.WaitForAsync() を使用してください。

使用法

await Page.QuerySelectorAsync(selector, options);

引数

  • selector string#

    クエリするセレクター。

  • options PageQuerySelectorOptions? (任意)

    • Strict bool? (オプション)v1.14 で追加#

      true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。

戻り値


QuerySelectorAllAsync

v1.9 で追加 page.QuerySelectorAllAsync
非推奨

代わりにロケーターベースの Page.Locator() を使用してください。ロケーターの詳細をお読みください。

このメソッドは、ページ内で指定されたセレクターに一致するすべての要素を検索します。セレクターに一致する要素がない場合、戻り値は [] になります。

使用法

await Page.QuerySelectorAllAsync(selector);

引数

  • selector string#

    クエリするセレクター。

戻り値


RunAndWaitForNavigationAsync

v1.9 で追加 page.RunAndWaitForNavigationAsync
非推奨

このメソッドは本質的に競合状態が発生しやすいため、代わりに Page.WaitForURLAsync() を使用してください。

メインフレームのナビゲーションを待機し、メインリソースのレスポンスを返します。複数のリダイレクトが発生した場合、ナビゲーションは最後のリダイレクトのレスポンスで解決されます。異なるアンカーへのナビゲーションや History API の使用によるナビゲーションの場合、ナビゲーションは null で解決されます。

使用法

これは、ページが新しい URL にナビゲートまたはリロードされるときに解決されます。これは、ページを間接的にナビゲートさせるコードを実行する場合に便利です。例:クリックターゲットに、setTimeout からナビゲーションをトリガーする onclick ハンドラーがある場合。次の例を検討してください。

await page.RunAndWaitForNavigationAsync(async () =>
{
// This action triggers the navigation after a timeout.
await page.GetByText("Navigate after timeout").ClickAsync();
});

// The method continues after navigation has finished

URL を変更するための History API の使用は、ナビゲーションとみなされます。

引数

  • action Func<Task>v1.12 で追加#

    Action that triggers the event.

  • options PageRunAndWaitForNavigationOptions? (任意)

    • Timeout [float]? (任意)#

      操作の最大時間(ミリ秒単位)。デフォルトは 30 秒です。タイムアウトを無効にするには、0を渡します。デフォルト値は、BrowserContext.SetDefaultNavigationTimeout()BrowserContext.SetDefaultTimeout()Page.SetDefaultNavigationTimeout()またはPage.SetDefaultTimeout()メソッドを使用して変更できます。

    • Url|UrlRegex|UrlFunc string? | Regex? | Func<string?, bool> (任意)#

      ナビゲーションを待機中に一致させる URL を受け取る glob パターン、正規表現パターン、または述語。パラメータがワイルドカード文字を含まない文字列である場合、メソッドは文字列と完全に等しい URL へのナビゲーションを待機することに注意してください。

    • WaitUntil enum WaitUntilState { Load, DOMContentLoaded, NetworkIdle, Commit }? (任意)#

      操作が成功したと見なすタイミング。デフォルトはloadです。イベントは次のいずれかになります。

      • 'domcontentloaded' - DOMContentLoadedイベントが発生したときに操作が完了したと見なします。
      • 'load' - loadイベントが発生したときに操作が完了したと見なします。
      • 'networkidle' - 非推奨 ネットワーク接続が少なくとも500ミリ秒間ない場合に操作が完了したと見なします。テストにこのメソッドを使用せず、代わりに Web アサーションを使用して準備状態を評価してください。
      • 'commit' - ネットワークレスポンスを受信し、ドキュメントのロードが開始されたときに操作が完了したと見なします。

戻り値


WaitForNavigationAsync

v1.9 で追加 page.WaitForNavigationAsync
非推奨

このメソッドは本質的に競合状態が発生しやすいため、代わりに Page.WaitForURLAsync() を使用してください。

メインフレームのナビゲーションを待機し、メインリソースのレスポンスを返します。複数のリダイレクトが発生した場合、ナビゲーションは最後のリダイレクトのレスポンスで解決されます。異なるアンカーへのナビゲーションや History API の使用によるナビゲーションの場合、ナビゲーションは null で解決されます。

使用法

これは、ページが新しい URL にナビゲートまたはリロードされるときに解決されます。これは、ページを間接的にナビゲートさせるコードを実行する場合に便利です。例:クリックターゲットに、setTimeout からナビゲーションをトリガーする onclick ハンドラーがある場合。次の例を検討してください。

await page.RunAndWaitForNavigationAsync(async () =>
{
// This action triggers the navigation after a timeout.
await page.GetByText("Navigate after timeout").ClickAsync();
});

// The method continues after navigation has finished

URL を変更するための History API の使用は、ナビゲーションとみなされます。

引数

  • options PageRunAndWaitForNavigationOptions? (任意)
    • Timeout [float]? (任意)#

      操作の最大時間(ミリ秒単位)。デフォルトは 30 秒です。タイムアウトを無効にするには、0を渡します。デフォルト値は、BrowserContext.SetDefaultNavigationTimeout()BrowserContext.SetDefaultTimeout()Page.SetDefaultNavigationTimeout()またはPage.SetDefaultTimeout()メソッドを使用して変更できます。

    • Url|UrlRegex|UrlFunc string? | Regex? | Func<string?, bool> (任意)#

      ナビゲーションを待機中に一致させる URL を受け取る glob パターン、正規表現パターン、または述語。パラメータがワイルドカード文字を含まない文字列である場合、メソッドは文字列と完全に等しい URL へのナビゲーションを待機することに注意してください。

    • WaitUntil enum WaitUntilState { Load, DOMContentLoaded, NetworkIdle, Commit }? (任意)#

      操作が成功したと見なすタイミング。デフォルトはloadです。イベントは次のいずれかになります。

      • 'domcontentloaded' - DOMContentLoadedイベントが発生したときに操作が完了したと見なします。
      • 'load' - loadイベントが発生したときに操作が完了したと見なします。
      • 'networkidle' - 非推奨 ネットワーク接続が少なくとも500ミリ秒間ない場合に操作が完了したと見なします。テストにこのメソッドを使用せず、代わりに Web アサーションを使用して準備状態を評価してください。
      • 'commit' - ネットワークレスポンスを受信し、ドキュメントのロードが開始されたときに操作が完了したと見なします。

戻り値


SelectOptionAsync

v1.9 で追加 page.SelectOptionAsync
非推奨

代わりにロケーターベースの Locator.SelectOptionAsync() を使用してください。ロケーターの詳細をお読みください。

このメソッドは、selector に一致する要素を待機し、操作性チェックを待機し、指定されたすべてのオプションが <select> 要素に存在することを確認してから、これらのオプションを選択します。

ターゲット要素が <select> 要素でない場合、このメソッドはエラーをスローします。ただし、要素が、関連付けられた control を持つ <label> 要素内にある場合、代わりにその control が使用されます。

正常に選択されたオプション値の配列を返します。

指定されたすべてのオプションが選択されると、change および input イベントをトリガーします。

使用法

// Single selection matching the value or label
await page.SelectOptionAsync("select#colors", new[] { "blue" });
// single selection matching both the value and the label
await page.SelectOptionAsync("select#colors", new[] { new SelectOptionValue() { Label = "blue" } });
// multiple
await page.SelectOptionAsync("select#colors", new[] { "red", "green", "blue" });

引数

  • selector string#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。

  • values string | ElementHandle | IEnumerable | SelectOption | IEnumerable | IEnumerable?#

    • Value string? (任意)

      option.value で一致させます。任意。

    • Label string? (任意)

      option.label で一致させます。任意。

    • Index int? (任意)

      インデックスで一致させます。任意。

    選択するオプション。<select>multiple 属性がある場合、一致するすべてのオプションが選択されます。それ以外の場合は、渡されたオプションのいずれかに一致する最初のオプションのみが選択されます。文字列値は、値とラベルの両方に一致します。オプションは、指定されたすべてのプロパティが一致する場合に一致するとみなされます。

  • options PageSelectOptionOptions? (任意)

    • Force bool? (任意)v1.13 で追加#

      実行可能性チェックをバイパスするかどうか。デフォルトは false です。

    • NoWaitAfter bool? (任意)#

      非推奨

      このオプションは効果がありません。

      このオプションは効果がありません。

    • Strict bool? (オプション)v1.14 で追加#

      true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。

    • Timeout [float]? (任意)#

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

戻り値


SetCheckedAsync

v1.15 で追加 page.SetCheckedAsync
非推奨

代わりにロケーターベースの Locator.SetCheckedAsync() を使用してください。ロケーターの詳細をお読みください。

このメソッドは、selector に一致する要素をチェックまたはチェック解除するために、次の手順を実行します。

  1. selector に一致する要素を検索します。存在しない場合は、一致する要素が DOM にアタッチされるまで待機します。
  2. 一致した要素がチェックボックスまたはラジオ入力であることを確認します。そうでない場合、このメソッドは例外をスローします。
  3. 要素がすでに正しいチェック状態になっている場合、このメソッドはすぐに戻ります。
  4. 操作性チェックが Force オプションが設定されていない限り、一致した要素に対して待機します。チェック中に要素がデタッチされた場合、アクション全体が再試行されます。
  5. 必要に応じて、要素をビューにスクロールします。
  6. Page.Mouse を使用して、要素の中央をクリックします。
  7. 要素がチェックまたはチェック解除されたことを確認します。そうでない場合、このメソッドは例外をスローします。

指定された Timeout の間にすべての手順が完了しなかった場合、このメソッドは TimeoutError をスローします。タイムアウトをゼロにすると、これは無効になります。

使用法

await Page.SetCheckedAsync(selector, checked, options);

引数

  • selector string#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。

  • checkedState bool#

    チェックボックスをチェックまたはチェック解除するかどうか。

  • options PageSetCheckedOptions? (任意)

    • Force bool? (任意)#

      実行可能性チェックをバイパスするかどうか。デフォルトは false です。

    • NoWaitAfter bool? (任意)#

      非推奨

      このオプションは効果がありません。

      このオプションは効果がありません。

    • Position Position? (任意)#

      • X [float]

      • Y [float]

      要素のパディングボックスの左上隅を基準に使用するポイント。指定しない場合は、要素の表示可能なポイントの一部を使用します。

    • Strict bool? (任意)#

      true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。

    • Timeout [float]? (任意)#

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

    • Trial bool? (任意)#

      設定すると、このメソッドは 実行可能性チェックのみを実行し、アクションをスキップします。デフォルトは false です。アクションを実行せずに要素がアクションの準備が整うまで待機するのに役立ちます。

戻り値


SetInputFilesAsync

v1.9 で追加 page.SetInputFilesAsync
非推奨

代わりにロケーターベースの Locator.SetInputFilesAsync() を使用してください。ロケーターの詳細をお読みください。

ファイル入力の値を、これらのファイルパスまたはファイルに設定します。filePaths の一部が相対パスである場合、それらは現在の作業ディレクトリからの相対パスとして解決されます。空の配列の場合、選択されたファイルをクリアします。[webkitdirectory] 属性を持つ入力の場合、単一のディレクトリパスのみがサポートされます。

このメソッドは、selectorinput 要素を指していることを想定しています。ただし、要素が、関連付けられた control を持つ <label> 要素内にある場合、代わりにその control をターゲットにします。

使用法

await Page.SetInputFilesAsync(selector, files, options);

引数

  • selector string#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。

  • files string | IEnumerable<string> | FilePayload | IEnumerable<FilePayload>#

    • Name string

      ファイル名

    • MimeType string

      ファイルタイプ

    • Buffer byte[]

      ファイルの内容

  • options PageSetInputFilesOptions? (任意)

    • NoWaitAfter bool? (任意)#

      非推奨

      このオプションは効果がありません。

      このオプションは効果がありません。

    • Strict bool? (オプション)v1.14 で追加#

      true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。

    • Timeout [float]? (任意)#

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

戻り値


TapAsync

v1.9 で追加 page.TapAsync
非推奨

代わりにロケーターベースの Locator.TapAsync() を使用してください。ロケーターの詳細をお読みください。

このメソッドは、selector に一致する要素をタップするために、次の手順を実行します。

  1. selector に一致する要素を検索します。存在しない場合は、一致する要素が DOM にアタッチされるまで待機します。
  2. 操作性チェックが Force オプションが設定されていない限り、一致した要素に対して待機します。チェック中に要素がデタッチされた場合、アクション全体が再試行されます。
  3. 必要に応じて、要素をビューにスクロールします。
  4. 要素の中心、または指定された Position をタップするには、Page.Touchscreen を使用します。

指定された Timeout の間にすべての手順が完了しなかった場合、このメソッドは TimeoutError をスローします。タイムアウトをゼロにすると、これは無効になります。

Page.TapAsync() メソッドは、ブラウザーコンテキストの HasTouch オプションが false の場合、例外をスローします。

使用法

await Page.TapAsync(selector, options);

引数

  • selector string#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。

  • options PageTapOptions? (任意)

    • Force bool? (任意)#

      実行可能性チェックをバイパスするかどうか。デフォルトは false です。

    • Modifiers IEnumerable?<enum KeyboardModifier { Alt, Control, ControlOrMeta, Meta, Shift }> (任意)#

      押す修飾キー。操作中にこれらの修飾キーのみが押されていることを保証し、その後、現在の修飾キーを復元します。指定しない場合、現在押されている修飾キーが使用されます。"ControlOrMeta"は、WindowsおよびLinuxでは"Control"、macOSでは"Meta"に解決されます。

    • NoWaitAfter bool? (任意)#

      非推奨

      このオプションは効果がありません。

      このオプションは効果がありません。

    • Position Position? (任意)#

      • X [float]

      • Y [float]

      要素のパディングボックスの左上隅を基準に使用するポイント。指定しない場合は、要素の表示可能なポイントの一部を使用します。

    • Strict bool? (オプション)v1.14 で追加#

      true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。

    • Timeout [float]? (任意)#

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

    • Trial bool? (省略可能)v1.11 で追加#

      設定した場合、このメソッドはアクション実行可能性チェックのみを実行し、アクションをスキップします。デフォルトはfalseです。アクションを実行せずに、要素がアクションの準備ができるまで待機するのに役立ちます。キーボードmodifiersは、それらのキーが押されている場合にのみ表示される要素をテストできるように、trialに関係なく押されることに注意してください。

戻り値


TextContentAsync

v1.9 で追加 page.TextContentAsync
非推奨

代わりにロケーターベースの Locator.TextContentAsync() を使用してください。ロケーターの詳細をお読みください。

element.textContent を返します。

使用法

await Page.TextContentAsync(selector, options);

引数

  • selector string#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。

  • options PageTextContentOptions? (任意)

    • Strict bool? (オプション)v1.14 で追加#

      true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。

    • Timeout [float]? (任意)#

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

戻り値


TypeAsync

v1.9 で追加 page.TypeAsync
非推奨

ほとんどの場合、代わりに Locator.FillAsync() を使用する必要があります。ページに特別なキーボード処理がある場合にのみ、キーを 1 つずつ押す必要があります。この場合は、Locator.PressSequentiallyAsync() を使用してください。

テキスト内の各文字に対して、keydownkeypress/input、および keyup イベントを送信します。page.type は、きめ細かいキーボードイベントを送信するために使用できます。フォームフィールドに値を入力するには、Page.FillAsync() を使用してください。

ControlArrowDown などの特殊キーを押すには、Keyboard.PressAsync() を使用してください。

使用法

引数

  • selector string#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。

  • text string#

    フォーカスされた要素に入力するテキスト。

  • options PageTypeOptions? (任意)

    • Delay [float]? (任意)#

      キー押下間の待ち時間(ミリ秒単位)。デフォルトは 0 です。

    • NoWaitAfter bool? (任意)#

      非推奨

      このオプションは効果がありません。

      このオプションは効果がありません。

    • Strict bool? (オプション)v1.14 で追加#

      true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。

    • Timeout [float]? (任意)#

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

戻り値


UncheckAsync

v1.9 で追加 page.UncheckAsync
非推奨

代わりにロケーターベースの Locator.UncheckAsync() を使用してください。ロケーターの詳細をお読みください。

このメソッドは、selector に一致する要素をチェック解除するために、次の手順を実行します。

  1. selector に一致する要素を検索します。存在しない場合は、一致する要素が DOM にアタッチされるまで待機します。
  2. 一致した要素がチェックボックスまたはラジオ入力であることを確認します。そうでない場合、このメソッドは例外をスローします。要素がすでにチェック解除されている場合、このメソッドはすぐに戻ります。
  3. 操作性チェックが Force オプションが設定されていない限り、一致した要素に対して待機します。チェック中に要素がデタッチされた場合、アクション全体が再試行されます。
  4. 必要に応じて、要素をビューにスクロールします。
  5. Page.Mouse を使用して、要素の中央をクリックします。
  6. 要素がチェック解除されたことを確認します。そうでない場合、このメソッドは例外をスローします。

指定された Timeout の間にすべての手順が完了しなかった場合、このメソッドは TimeoutError をスローします。タイムアウトをゼロにすると、これは無効になります。

使用法

await Page.UncheckAsync(selector, options);

引数

  • selector string#

    要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。

  • options PageUncheckOptions? (任意)

    • Force bool? (任意)#

      実行可能性チェックをバイパスするかどうか。デフォルトは false です。

    • NoWaitAfter bool? (任意)#

      非推奨

      このオプションは効果がありません。

      このオプションは効果がありません。

    • Position Position? (省略可能)v1.11 で追加#

      • X [float]

      • Y [float]

      要素のパディングボックスの左上隅を基準に使用するポイント。指定しない場合は、要素の表示可能なポイントの一部を使用します。

    • Strict bool? (オプション)v1.14 で追加#

      true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。

    • Timeout [float]? (任意)#

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

    • Trial bool? (省略可能)v1.11 で追加#

      設定すると、このメソッドは 実行可能性チェックのみを実行し、アクションをスキップします。デフォルトは false です。アクションを実行せずに要素がアクションの準備が整うまで待機するのに役立ちます。

戻り値


WaitForSelectorAsync

v1.9 で追加 page.WaitForSelectorAsync
非推奨

可視性をアサートするウェブアサーション、またはロケーターベースの Locator.WaitForAsync() を代わりに使用してください。ロケーターの詳細をお読みください。

セレクターで指定された要素が State オプションを満たすと戻ります。hidden または detached を待機している場合は null を返します。

Playwright は、アクションを実行する前に要素の準備ができるのを自動的に待機します。Locator オブジェクトとウェブファーストアサーションを使用すると、コードは wait-for-selector-free になります。

selectorState オプション(DOM に表示/非表示、または可視/不可視になる)を満たすのを待機します。メソッドの呼び出し時に selector がすでに条件を満たしている場合、メソッドはすぐに戻ります。セレクターが Timeout ミリ秒間条件を満たさない場合、関数は例外をスローします。

使用法

このメソッドはナビゲーションをまたいで動作します。

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

class FrameExamples
{
public static async Task Images()
{
using var playwright = await Playwright.CreateAsync();
await using var browser = await playwright.Chromium.LaunchAsync();
var page = await browser.NewPageAsync();

foreach (var currentUrl in new[] { "https://www.google.com", "https://bbc.com" })
{
await page.GotoAsync(currentUrl);
var element = await page.WaitForSelectorAsync("img");
Console.WriteLine($"Loaded image: {await element.GetAttributeAsync("src")}");
}

await browser.CloseAsync();
}
}

引数

  • selector string#

    クエリするセレクター。

  • options PageWaitForSelectorOptions? (任意)

    • State enum WaitForSelectorState { Attached, Detached, Visible, Hidden }? (任意)#

      デフォルトは 'visible' です。次のいずれかを指定できます。

      • 'attached' - 要素が DOM に存在するのを待機します。
      • 'detached' - 要素が DOM に存在しないのを待機します。
      • 'visible' - 要素が空でないバウンディングボックスを持ち、visibility:hidden でないのを待機します。コンテンツがない要素や display:none が設定されている要素は、空のバウンディングボックスを持ち、可視とはみなされないことに注意してください。
      • 'hidden' - 要素が DOM からデタッチされるか、空のバウンディングボックスを持つか、または visibility:hidden であるのを待機します。これは 'visible' オプションの反対です。
    • Strict bool? (オプション)v1.14 で追加#

      true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。

    • Timeout [float]? (任意)#

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

戻り値


WaitForTimeoutAsync

v1.9 で追加 page.WaitForTimeoutAsync
非推奨

本番環境でタイムアウトを待機することは絶対にしないでください。時間を待機するテストは、本質的に不安定です。Locator アクションと自動的に待機するウェブアサーションを使用してください。

指定された timeout (ミリ秒単位)の間待機します。

page.waitForTimeout() はデバッグにのみ使用してください。本番環境でタイマーを使用するテストは不安定になります。代わりに、ネットワークイベント、セレクターの可視化などのシグナルを使用してください。

使用法

// Wait for 1 second
await page.WaitForTimeoutAsync(1000);

引数

  • timeout [float]#

    待機するタイムアウト

戻り値