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 で追加次のいずれかのシナリオで評価されるスクリプトを追加します。
- ページがナビゲートされるたび。
- 子フレームがアタッチまたはナビゲートされるたび。この場合、スクリプトは新しくアタッチされたフレームのコンテキストで評価されます。
スクリプトは、ドキュメントが作成された後、そのスクリプトが実行される前に評価されます。これは、JavaScript 環境を修正するのに役立ちます。例えば、Math.random
をシードするなどです。
使用法
ページがロードされる前に Math.random
をオーバーライドする例
// preload.js
Math.random = () => 42;
await Page.AddInitScriptAsync(scriptPath: "./preload.js");
BrowserContext.AddInitScriptAsync() および Page.AddInitScriptAsync() を介してインストールされた複数のスクリプトの評価順序は定義されていません。
引数
戻り値
AddLocatorHandlerAsync
v1.42 で追加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 が表示されたら実行される関数。この関数は、クリックなどのアクションをブロックする要素を取り除く必要があります。
-
options
PageAddLocatorHandlerOptions?
(オプション)
戻り値
AddScriptTagAsync
v1.9 で追加目的の URL またはコンテンツを持つ <script>
タグをページに追加します。スクリプトの onload が発生したとき、またはスクリプトコンテンツがフレームに挿入されたときに、追加されたタグを返します。
使用法
await Page.AddScriptTagAsync(options);
引数
options
PageAddScriptTagOptions?
(オプション)
戻り値
AddStyleTagAsync
v1.9 で追加目的の URL を持つ <link rel="stylesheet">
タグ、またはコンテンツを持つ <style type="text/css">
タグをページに追加します。スタイルシートの onload が発生したとき、または CSS コンテンツがフレームに挿入されたときに、追加されたタグを返します。
使用法
await Page.AddStyleTagAsync(options);
引数
options
PageAddStyleTagOptions?
(オプション)
戻り値
BringToFrontAsync
v1.9 で追加ページを前面に表示します (タブをアクティブにします)。
使用法
await Page.BringToFrontAsync();
戻り値
CloseAsync
v1.9 で追加RunBeforeUnload が false
の場合、アンロードハンドラーを実行せず、ページが閉じられるのを待ちます。RunBeforeUnload が true
の場合、メソッドはアンロードハンドラーを実行しますが、ページのクローズを待機しません。
デフォルトでは、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 で追加doctype を含む、ページの完全な HTML コンテンツを取得します。
使用法
await Page.ContentAsync();
戻り値
Context
v1.9 で追加ページが属するブラウザコンテキストを取得します。
使用法
Page.Context
戻り値
DragAndDropAsync
v1.13 で追加このメソッドは、ソース要素をターゲット要素にドラッグします。最初にソース要素に移動し、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 },
});
引数
-
ドラッグする要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
ドロップ先の要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
options
PageDragAndDropOptions?
(オプション)-
実行可能性チェックをバイパスするかどうか。デフォルトは
false
です。 -
非推奨
このオプションは効果がありません。
このオプションは効果がありません。
-
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() メソッドを使用して変更できます。 -
設定すると、このメソッドは 実行可能性チェックのみを実行し、アクションをスキップします。デフォルトは
false
です。アクションを実行せずに要素がアクションの準備が整うまで待機するのに役立ちます。
-
戻り値
EmulateMediaAsync
v1.9 で追加このメソッドは、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 で追加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();
引数
-
ブラウザコンテキストで評価される JavaScript 式。式が関数として評価される場合、関数は自動的に呼び出されます。
-
arg
EvaluationArgument? (オプション)#expression に渡すオプションの引数。
戻り値
- [object]#
EvaluateHandleAsync
v1.9 で追加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();
引数
-
ブラウザコンテキストで評価される JavaScript 式。式が関数として評価される場合、関数は自動的に呼び出されます。
-
arg
EvaluationArgument? (オプション)#expression に渡すオプションの引数。
戻り値
ExposeBindingAsync
v1.9 で追加このメソッドは、このページのすべてのフレームの window
オブジェクトに、name という名前の関数を追加します。呼び出されると、関数は callback を実行し、callback の戻り値に解決される Promise を返します。callback が Promise を返す場合、それは 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");
}
}
引数
-
window オブジェクト上の関数の名前。
-
callback
Action<BindingSource, T, [TResult]>#Playwright のコンテキストで呼び出されるコールバック関数。
-
options
PageExposeBindingOptions?
(オプション)
戻り値
ExposeFunctionAsync
v1.9 で追加このメソッドは、ページのすべてのフレームの window
オブジェクトに、name という名前の関数を追加します。呼び出されると、関数は callback を実行し、callback の戻り値に解決される Promise を返します。
callback が Promise を返す場合、それは 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"));
}
}
引数
戻り値
Frame
v1.9 で追加指定された条件に一致するフレームを返します。name
または url
のいずれかを指定する必要があります。
使用法
var frame = page.Frame("frame-name");
var frame = page.FrameByUrl(".*domain.*");
引数
戻り値
FrameByUrl
v1.9 で追加一致する URL を持つフレームを返します。
使用法
Page.FrameByUrl(url);
引数
戻り値
FrameLocator
v1.17 で追加iframe を操作する場合、iframe に入り、その iframe 内の要素を選択できるようにするフレームロケーターを作成できます。
使用法
次のスニペットは、my-frame
という ID を持つ iframe 内の「Submit」というテキストを持つ要素を検索します (例: <iframe id="my-frame">
)。
var locator = page.FrameLocator("#my-iframe").GetByText("Submit");
await locator.ClickAsync();
引数
戻り値
Frames
v1.9 で追加ページにアタッチされているすべてのフレームの配列。
使用法
Page.Frames
戻り値
GetByAltText
追加バージョン: v1.27altテキストで要素を特定できるようにします。
使用法
例えば、このメソッドはaltテキスト "Playwright logo" で画像を検索します。
<img alt='Playwright logo'>
await page.GetByAltText("Playwright logo").ClickAsync();
引数
-
要素を特定するためのテキスト。
-
options
PageGetByAltTextOptions?
(オプション)
戻り値
GetByLabel
追加バージョン: v1.27関連付けられた<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");
引数
-
要素を特定するためのテキスト。
-
options
PageGetByLabelOptions?
(オプション)
戻り値
GetByPlaceholder
追加バージョン: v1.27プレースホルダーテキストで入力要素を特定できるようにします。
使用法
例えば、次の DOM 構造を考えてみましょう。
<input type="email" placeholder="name@example.com" />
プレースホルダーテキストで特定した後、入力を埋めることができます。
await page
.GetByPlaceholder("name@example.com")
.FillAsync("playwright@microsoft.com");
引数
-
要素を特定するためのテキスト。
-
options
PageGetByPlaceholderOptions?
(オプション)
戻り値
GetByRole
追加バージョン: v1.27ARIA role、ARIA 属性、およびアクセシブルネームによって要素を特定できるようにします。
使用法
次の 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?
(オプション)-
通常、
aria-checked
またはネイティブの<input type=checkbox>
コントロールによって設定される属性。aria-checked
の詳細をご覧ください。 -
通常、
aria-disabled
またはdisabled
によって設定される属性。注他のほとんどの属性とは異なり、
disabled
は DOM 階層を介して継承されます。aria-disabled
の詳細をご覧ください。 -
Exact
bool? (オプション)追加バージョン: v1.28#Name|NameRegexを完全一致させるかどうか: 大文字と小文字を区別し、文字列全体が一致する必要があります。デフォルトは false です。Name|NameRegexが正規表現の場合は無視されます。完全一致でも空白文字はトリムされることに注意してください。
-
通常、
aria-expanded
によって設定される属性。aria-expanded
の詳細をご覧ください。 -
非表示要素を一致させるかどうかを制御するオプション。デフォルトでは、ARIA で定義されている非表示でない要素のみがロールセレクターによって一致されます。
aria-hidden
の詳細をご覧ください。 -
通常、ロール
heading
、listitem
、row
、treeitem
に存在する数値属性。<h1>-<h6>
要素にはデフォルト値があります。aria-level
の詳細をご覧ください。 -
Name|NameRegex
string? | Regex? (オプション)#アクセシブルネームを一致させるためのオプション。デフォルトでは、大文字と小文字を区別せずに部分文字列を検索します。Exactを使用してこの動作を制御します。
アクセシブルネームの詳細をご覧ください。
-
通常、
aria-pressed
によって設定される属性。aria-pressed
の詳細をご覧ください。 -
通常、
aria-selected
によって設定される属性。aria-selected
の詳細をご覧ください。
-
戻り値
詳細
ロールセレクターは、アクセシビリティ監査および適合性テストの代わりにはなりませんが、ARIA ガイドラインに関する早期フィードバックを提供します。
多くの html 要素には、ロールセレクターによって認識される暗黙的に定義されたロールがあります。すべてのサポートされているロールはこちらで確認できます。ARIA ガイドラインは、デフォルト値にrole
やaria-*
属性を設定して暗黙的なロールと属性を複製することを推奨していません。
GetByTestId
追加バージョン: v1.27テスト ID で要素を特定します。
使用法
次の DOM 構造を考えてみましょう。
<button data-testid="directions">Itinéraire</button>
テスト ID で要素を特定できます。
await page.GetByTestId("directions").ClickAsync();
引数
戻り値
詳細
デフォルトでは、data-testid
属性がテスト ID として使用されます。必要に応じて別のテスト ID 属性を設定するには、Selectors.SetTestIdAttribute()を使用します。
GetByText
追加バージョン: v1.27指定されたテキストを含む要素を特定できるようにします。
アクセシブルロールなどの別の条件で一致させ、テキストコンテンツでフィルタリングできる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));
引数
-
要素を特定するためのテキスト。
-
options
PageGetByTextOptions?
(オプション)
戻り値
詳細
テキストによるマッチングは、完全一致の場合でも常に空白文字を正規化します。例えば、複数のスペースを1つに、改行をスペースに変換し、先頭と末尾の空白文字を無視します。
button
およびsubmit
タイプの入力要素は、テキストコンテンツの代わりにvalue
によって一致します。例えば、テキスト"Log in"
で検索すると、<input type=button value="Log in">
に一致します。
GetByTitle
追加バージョン: v1.27title 属性で要素を特定できるようにします。
使用法
次の DOM 構造を考えてみましょう。
<span title='Issues count'>25 issues</span>
タイトルテキストで特定した後、課題数を確認できます。
await Expect(Page.GetByTitle("Issues count")).toHaveText("25 issues");
引数
-
要素を特定するためのテキスト。
-
options
PageGetByTitleOptions?
(オプション)
戻り値
GoBackAsync
v1.9 で追加メインリソースのレスポンスを返します。複数のリダイレクトの場合、ナビゲーションは最後のリダイレクトのレスポンスで解決されます。戻ることができない場合は、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 で追加メインリソースのレスポンスを返します。複数のリダイレクトの場合、ナビゲーションは最後のリダイレクトのレスポンスで解決されます。進むことができない場合は、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 で追加メインリソースのレスポンスを返します。複数のリダイレクトの場合、ナビゲーションは最初のリダイレクト以外のレスポンスで解決されます。
このメソッドは、次の場合にエラーをスローします。
- SSL エラーが発生した場合 (例: 自己署名証明書の場合)。
- ターゲット URL が無効な場合。
- Timeoutがナビゲーション中に超過した場合。
- リモートサーバーが応答しないか、到達不能な場合。
- メインリソースのロードに失敗した場合。
このメソッドは、リモートサーバーから有効な HTTP ステータスコード (404 "Not Found" や 500 "Internal Server Error" を含む) が返された場合、エラーをスローしません。このようなレスポンスのステータスコードは、Response.Statusを呼び出すことで取得できます。
このメソッドは、エラーをスローするか、メインリソースのレスポンスを返します。唯一の例外は、about:blank
へのナビゲーション、または異なるハッシュを持つ同じ URL へのナビゲーションで、これは成功し、null
を返します。
ヘッドレスモードは、PDF ドキュメントへのナビゲーションをサポートしていません。アップストリームの問題を参照してください。
使用法
await Page.GotoAsync(url, options);
引数
-
ページをナビゲートする URL。URL にはスキーム (例:
https://
) を含める必要があります。BaseURLがコンテキストオプションを介して提供され、渡された URL がパスである場合、new URL()
コンストラクターを介してマージされます。 -
options
PageGotoOptions?
(オプション)-
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
戻り値
Locator
v1.14 で追加このメソッドは、このページ/フレームでアクションを実行するために使用できる要素ロケーターを返します。ロケーターは、アクションを実行する直前に要素に解決されるため、同じロケーターに対する一連のアクションは、実際には異なる DOM 要素で実行される可能性があります。これは、これらのアクション間の DOM 構造が変更された場合に発生します。
使用法
Page.Locator(selector, options);
引数
-
DOM 要素を解決するときに使用するセレクター。
-
options
PageLocatorOptions?
(オプション)-
この相対ロケーターに一致する要素を含む結果に、メソッドの結果を絞り込みます。例えば、
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
戻り値
OpenerAsync
v1.9 で追加ポップアップページのオープナーを返し、それ以外の場合はnull
を返します。オープナーがすでに閉じられている場合は、null
を返します。
使用法
await Page.OpenerAsync();
戻り値
PauseAsync
v1.9 で追加スクリプトの実行を一時停止します。Playwright はスクリプトの実行を停止し、ユーザーがページオーバーレイの [再開] ボタンを押すか、DevTools コンソールでplaywright.resume()
を呼び出すのを待ちます。
ユーザーは、一時停止中にセレクターを検査したり、手動ステップを実行したりできます。[再開] を押すと、一時停止した場所から元のスクリプトの実行が再開されます。
このメソッドでは、Playwright がヘッダーモードで、Headlessオプションが false の状態で開始されている必要があります。
使用法
await Page.PauseAsync();
戻り値
PdfAsync
v1.9 で追加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" });
Width、Height、および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と同じ形式を使用する必要があります。
-
用紙フォーマット。設定した場合、WidthまたはHeightオプションよりも優先されます。デフォルトは 'Letter' です。
-
HeaderTemplate
string? (オプション)#印刷ヘッダーの HTML テンプレート。印刷値を挿入するために使用される次のクラスを含む有効な HTML マークアップである必要があります。
'date'
フォーマットされた印刷日'title'
ドキュメントタイトル'url'
ドキュメントの場所'pageNumber'
現在のページ番号'totalPages'
ドキュメントの総ページ数
-
用紙の高さ。単位付きの値を許可します。
-
用紙の向き。デフォルトは
false
です。 -
Margin
Margin? (オプション)#-
Top
string? (オプション)上マージン。単位付きの値を許可します。デフォルトは
0
です。 -
Right
string? (オプション)右マージン。単位付きの値を許可します。デフォルトは
0
です。 -
Bottom
string? (オプション)下マージン。単位付きの値を許可します。デフォルトは
0
です。 -
Left
string? (オプション)左マージン。単位付きの値を許可します。デフォルトは
0
です。
用紙マージン。デフォルトはなしです。
-
-
Outline
bool? (オプション)v1.42 で追加#ドキュメントのアウトラインを PDF に埋め込むかどうか。デフォルトは
false
です。 -
印刷するページ範囲。例: '1-5, 8, 11-13'。デフォルトは空の文字列で、すべてのページを印刷することを意味します。
-
PDF を保存するファイルパス。Pathが相対パスの場合、現在の作業ディレクトリからの相対パスとして解決されます。パスが指定されていない場合、PDF はディスクに保存されません。
-
PreferCSSPageSize
bool? (オプション)#ページ内で宣言された CSS
@page
サイズは、Width、Height、または Format オプションで宣言されたものよりも優先されます。デフォルトはfalse
で、コンテンツは用紙サイズに合わせて拡大縮小されます。 -
PrintBackground
bool? (オプション)#背景グラフィックを印刷します。デフォルトは
false
です。 -
Scale
[float]? (オプション)#Web ページのレンダリングのスケール。デフォルトは
1
です。スケール量は 0.1 から 2 の間でなければなりません。 -
Tagged
bool? (オプション)v1.42 で追加#タグ付き (アクセシブル) PDF を生成するかどうか。デフォルトは
false
です。 -
用紙の幅。単位付きの値を指定できます。
-
戻り値
ReloadAsync
v1.9 で追加このメソッドは、ユーザーがブラウザの更新をトリガーした場合と同じ方法で、現在のページをリロードします。メインリソースの応答を返します。複数のリダイレクトが発生した場合、ナビゲーションは最後のリダイレクトの応答で解決されます。
使用法
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.AddLocatorHandlerAsync() によって追加されたすべてのロケーターハンドラーを削除します。
使用法
await Page.RemoveLocatorHandlerAsync(locator);
引数
-
Page.AddLocatorHandlerAsync() に渡されるロケーター。
戻り値
RequestGCAsync
追加: v1.48ページにガベージコレクションを実行するように要求します。到達不能なオブジェクトがすべて収集される保証はないことに注意してください。
これは、メモリリークの検出に役立ちます。たとえば、ページにリークしている可能性のある大きなオブジェクト '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 で追加ルーティングは、ページによって行われるネットワークリクエストを変更する機能を提供します。
ルーティングが有効になると、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()
コンストラクターを介してマージされます。 -
リクエストをルーティングするハンドラー関数。
-
options
PageRouteOptions?
(オプション)
戻り値
RouteFromHARAsync
追加: v1.23指定した場合、ページで行われるネットワークリクエストは HAR ファイルから提供されます。HAR からのリプレイ について詳しくはこちらをご覧ください。
Playwright は、Service Worker によってインターセプトされたリクエストを HAR ファイルから提供しません。こちらの issue を参照してください。リクエストインターセプトを使用する場合は、ServiceWorkers を 'block'
に設定して Service Worker を無効にすることをお勧めします。
使用法
await Page.RouteFromHARAsync(har, options);
引数
-
事前に記録されたネットワークデータを含む HAR ファイルへのパス。
path
が相対パスの場合、現在の作業ディレクトリからの相対パスとして解決されます。 -
options
PageRouteFromHAROptions?
(オプション)-
NotFound
enum HarNotFound { Abort, Fallback }?
(オプション)#- 'abort' に設定すると、HAR ファイルに見つからないリクエストはすべて中止されます。
- 'fallback' に設定すると、見つからないリクエストはネットワークに送信されます。
デフォルトは abort です。
-
指定した場合、ファイルから提供する代わりに、指定された 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. Ifembed
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 tominimal
. -
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.48This method allows to modify websocket connections that are made by the page.
Note that only WebSocket
s 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");
});
});
引数
-
url
string | Regex | Func<string, bool>#Only WebSockets with the url matching this pattern will be routed. A string pattern can be relative to the BaseURL context option.
-
handler
Action<WebSocketRoute>#Handler function to route the WebSocket.
戻り値
RunAndWaitForConsoleMessageAsync
v1.9 で追加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 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). Pass0
to disable timeout. The default value can be changed by using the BrowserContext.SetDefaultTimeout().
-
戻り値
WaitForConsoleMessageAsync
v1.9 で追加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). Pass0
to disable timeout. The default value can be changed by using the BrowserContext.SetDefaultTimeout().
-
戻り値
RunAndWaitForDownloadAsync
v1.9 で追加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 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). Pass0
to disable timeout. The default value can be changed by using the BrowserContext.SetDefaultTimeout().
-
戻り値
WaitForDownloadAsync
v1.9 で追加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). Pass0
to disable timeout. The default value can be changed by using the BrowserContext.SetDefaultTimeout().
-
戻り値
RunAndWaitForFileChooserAsync
v1.9 で追加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 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). Pass0
to disable timeout. The default value can be changed by using the BrowserContext.SetDefaultTimeout().
-
戻り値
WaitForFileChooserAsync
v1.9 で追加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). Pass0
to disable timeout. The default value can be changed by using the BrowserContext.SetDefaultTimeout().
-
戻り値
RunAndWaitForPopupAsync
v1.9 で追加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 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). Pass0
to disable timeout. The default value can be changed by using the BrowserContext.SetDefaultTimeout().
-
戻り値
WaitForPopupAsync
v1.9 で追加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). Pass0
to disable timeout. The default value can be changed by using the BrowserContext.SetDefaultTimeout().
-
戻り値
RunAndWaitForRequestAsync
v1.9 で追加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 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 で追加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 で追加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 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). Pass0
to disable timeout. The default value can be changed by using the BrowserContext.SetDefaultTimeout().
-
戻り値
WaitForRequestFinishedAsync
v1.12 で追加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). Pass0
to disable timeout. The default value can be changed by using the BrowserContext.SetDefaultTimeout().
-
戻り値
RunAndWaitForResponseAsync
v1.9 で追加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 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)-
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 BrowserContext.SetDefaultTimeout() or Page.SetDefaultTimeout() methods.
-
戻り値
WaitForResponseAsync
v1.9 で追加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)-
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 BrowserContext.SetDefaultTimeout() or Page.SetDefaultTimeout() methods.
-
戻り値
RunAndWaitForWebSocketAsync
v1.9 で追加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 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). Pass0
to disable timeout. The default value can be changed by using the BrowserContext.SetDefaultTimeout().
-
戻り値
WaitForWebSocketAsync
v1.9 で追加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). Pass0
to disable timeout. The default value can be changed by using the BrowserContext.SetDefaultTimeout().
-
戻り値
RunAndWaitForWorkerAsync
v1.9 で追加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 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). Pass0
to disable timeout. The default value can be changed by using the BrowserContext.SetDefaultTimeout().
-
戻り値
WaitForWorkerAsync
v1.9 で追加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). Pass0
to disable timeout. The default value can be changed by using the BrowserContext.SetDefaultTimeout().
-
戻り値
ScreenshotAsync
v1.9 で追加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. - finite animations are fast-forwarded to completion, so they'll fire
-
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.
-
-
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 tofalse
. -
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.
-
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 で追加This method internally calls document.write(), inheriting all its specific characteristics and behaviors.
使用法
await Page.SetContentAsync(html, options);
引数
-
ページに割り当てる 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.GoBackAsync()
- Page.GoForwardAsync()
- Page.GotoAsync()
- Page.ReloadAsync()
- Page.SetContentAsync()
- Page.RunAndWaitForNavigationAsync()
- Page.WaitForURLAsync()
使用法
Page.SetDefaultNavigationTimeout(timeout);
引数
-
timeout
[float]#ナビゲーションの最大時間(ミリ秒単位)。
SetDefaultTimeout
v1.9 で追加この設定は、timeout オプションを受け入れるすべてのメソッドのデフォルトの最大時間を変更します。
使用法
Page.SetDefaultTimeout(timeout);
引数
-
timeout
[float]#最大時間(ミリ秒単位)。タイムアウトを無効にするには
0
を渡します。
SetExtraHTTPHeadersAsync
v1.9 で追加追加の HTTP ヘッダーは、ページが開始するすべてのリクエストとともに送信されます。
Page.SetExtraHTTPHeadersAsync() は、送信リクエストにおけるヘッダーの順序を保証しません。
使用法
await Page.SetExtraHTTPHeadersAsync(headers);
引数
-
headers
IDictionary<string, string>#すべてのリクエストとともに送信される追加の HTTP ヘッダーを含むオブジェクト。すべてのヘッダー値は文字列である必要があります。
戻り値
SetViewportSizeAsync
v1.9 で追加単一のブラウザに複数のページがある場合、各ページは独自のビューポートサイズを持つことができます。ただし、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");
引数
戻り値
TitleAsync
v1.9 で追加ページのタイトルを返します。
使用法
await Page.TitleAsync();
戻り値
UnrouteAsync
v1.9 で追加Page.RouteAsync() で作成されたルートを削除します。handler が指定されていない場合、url のすべてのルートを削除します。
使用法
await Page.UnrouteAsync(url, handler);
引数
-
url
string | Regex | Func<string, bool>#ルーティング中に一致させる URL を受け取る glob パターン、正規表現パターン、または述語。
-
handler
Action<Route?> (省略可能)#リクエストをルーティングするためのオプションのハンドラー関数。
戻り値
UnrouteAllAsync
Added in: v1.41Page.RouteAsync() および Page.RouteFromHARAsync() で作成されたすべてのルートを削除します。
使用法
await Page.UnrouteAllAsync(options);
引数
options
PageUnrouteAllOptions?
(省略可能)-
Behavior
enum UnrouteBehavior { Wait, IgnoreErrors, Default }?
(省略可能)#すでに実行中のハンドラーを待機するかどうか、およびエラーがスローされた場合の対処法を指定します。
'default'
- 現在のハンドラー呼び出し(存在する場合)が完了するのを待機しません。アンルーティングされたハンドラーが例外をスローした場合、未処理のエラーが発生する可能性があります。'wait'
- 現在のハンドラー呼び出し(存在する場合)が完了するのを待機します。'ignoreErrors'
- 現在のハンドラー呼び出し(存在する場合)が完了するのを待機しません。アンルーティング後にハンドラーによってスローされたすべてのエラーは、警告なしにキャッチされます。
-
戻り値
Url
v1.9 で追加使用法
Page.Url
戻り値
Video
v1.9 で追加このページに関連付けられた Video オブジェクト。
使用法
Page.Video
戻り値
ViewportSize
v1.9 で追加使用法
Page.ViewportSize
戻り値
WaitForFunctionAsync
v1.9 で追加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);
引数
-
ブラウザコンテキストで評価される JavaScript 式。式が関数として評価される場合、関数は自動的に呼び出されます。
-
arg
EvaluationArgument? (省略可能)#expression に渡すオプションの引数。
-
options
PageWaitForFunctionOptions?
(省略可能)-
PollingInterval
[float]? (省略可能)#指定された場合、関数が実行される間隔(ミリ秒単位)として扱われます。オプションが指定されていない場合、デフォルトでは expression は
requestAnimationFrame
コールバックで実行されます。 -
Timeout
[float]? (省略可能)#待機する最大時間(ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.SetDefaultTimeout() メソッドまたは Page.SetDefaultTimeout() メソッドを使用して変更できます。
-
戻り値
WaitForLoadStateAsync
v1.9 で追加必要なロード状態に達したときに戻ります。
これは、ページが必要なロード状態(デフォルトでは 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?
(省略可能)-
Timeout
[float]? (省略可能)#操作の最大時間(ミリ秒単位)。デフォルトは 30 秒です。タイムアウトを無効にするには、
0
を渡します。デフォルト値は、BrowserContext.SetDefaultNavigationTimeout()、BrowserContext.SetDefaultTimeout()、Page.SetDefaultNavigationTimeout()またはPage.SetDefaultTimeout()メソッドを使用して変更できます。
-
戻り値
WaitForURLAsync
v1.11 で追加メインフレームが指定された 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 で追加このメソッドは、ページに関連付けられたすべての専用 WebWorker を返します。
これには ServiceWorker は含まれていません。
使用法
Page.Workers
戻り値
Properties
APIRequest
v1.16 で追加このページに関連付けられた API テストヘルパー。このメソッドは、ページのコンテキストで BrowserContext.APIRequest と同じインスタンスを返します。詳細については、BrowserContext.APIRequest を参照してください。
使用法
Page.APIRequest
型
Clock
v1.45 で追加Playwright には、時計と時間の経過をモックする機能があります。
使用法
Page.Clock
型
Keyboard
v1.9 で追加使用法
Page.Keyboard
型
Mouse
v1.9 で追加使用法
Page.Mouse
型
Touchscreen
v1.9 で追加使用法
Page.Touchscreen
型
Events
event Close
v1.9 で追加ページが閉じるときに発行されます。
使用法
Page.Close += async (_, page) => {};
イベントデータ
event Console
v1.9 で追加ページ内の JavaScript が console.log
や console.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 で追加ページがクラッシュしたときに発行されます。ブラウザページは、メモリを過剰に割り当てようとするとクラッシュする可能性があります。ページがクラッシュすると、進行中および後続の操作は例外をスローします。
クラッシュに対処する最も一般的な方法は、例外をキャッチすることです。
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 で追加alert
、prompt
、confirm
、beforeunload
などの JavaScript ダイアログが表示されたときに発行されます。リスナーは、Dialog.AcceptAsync() または Dialog.DismissAsync() のいずれかでダイアログを承認または拒否する必要があります。そうしないと、ページはダイアログを待機してフリーズし、クリックなどのアクションは完了しません。
使用法
page.RequestFailed += (_, request) =>
{
Console.WriteLine(request.Url + " " + request.Failure);
};
Page.Dialog または BrowserContext.Dialog リスナーが存在しない場合、すべてのダイアログは自動的に拒否されます。
イベントデータ
event DOMContentLoaded
v1.9 で追加JavaScript DOMContentLoaded
イベントがディスパッチされたときに発行されます。
使用法
Page.DOMContentLoaded += async (_, page) => {};
イベントデータ
event Download
v1.9 で追加添付ファイルのダウンロードが開始されたときに発行されます。ユーザーは、渡された Download インスタンスを介して、ダウンロードされたコンテンツに対する基本的なファイル操作にアクセスできます。
使用法
Page.Download += async (_, download) => {};
イベントデータ
event FileChooser
v1.9 で追加<input type=file>
をクリックした後など、ファイルチューザーが表示されるはずのときに発行されます。Playwright は、FileChooser.SetFilesAsync() を使用して入力ファイルを設定することにより、これに応答できます。これはその後アップロードできます。
page.FileChooser += (_, fileChooser) =>
{
fileChooser.SetFilesAsync(@"C:\temp\myfile.pdf");
};
使用法
Page.FileChooser += async (_, fileChooser) => {};
イベントデータ
event FrameAttached
v1.9 で追加フレームがアタッチされたときに発行されます。
使用法
Page.FrameAttached += async (_, frame) => {};
イベントデータ
event FrameDetached
v1.9 で追加フレームがデタッチされたときに発行されます。
使用法
Page.FrameDetached += async (_, frame) => {};
イベントデータ
event FrameNavigated
v1.9 で追加フレームが新しい URL にナビゲートされたときに発行されます。
使用法
Page.FrameNavigated += async (_, frame) => {};
イベントデータ
event Load
v1.9 で追加JavaScript load
イベントがディスパッチされたときに発行されます。
使用法
Page.Load += async (_, page) => {};
イベントデータ
event PageError
v1.9 で追加ページ内でキャッチされない例外が発生したときに発行されます。
// Log all uncaught errors to the terminal
page.PageError += (_, exception) =>
{
Console.WriteLine("Uncaught exception: " + exception);
};
使用法
Page.PageError += async (_, value) => {};
イベントデータ
event Popup
v1.9 で追加ページが新しいタブまたはウィンドウを開いたときに発行されます。このイベントは、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 で追加ページがリクエストを発行したときに発行されます。request オブジェクトは読み取り専用です。リクエストをインターセプトして変更するには、Page.RouteAsync() または BrowserContext.RouteAsync() を参照してください。
使用法
Page.Request += async (_, request) => {};
イベントデータ
event RequestFailed
v1.9 で追加リクエストがタイムアウトするなど、リクエストが失敗した場合に発行されます。
404 や 503 などの HTTP エラー応答は、HTTP の観点からは依然として成功した応答であるため、リクエストは Page.RequestFinished イベントで完了し、Page.RequestFailed イベントでは完了しません。リクエストが失敗と見なされるのは、クライアントがサーバーから HTTP 応答を取得できない場合のみです(例:ネットワークエラー net::ERR_FAILED)。
使用法
Page.RequestFailed += async (_, request) => {};
イベントデータ
event RequestFinished
v1.9 で追加レスポンスボディのダウンロード後にリクエストが正常に完了したときに発行されます。成功したレスポンスの場合、イベントのシーケンスは request
、response
、requestfinished
です。
使用法
Page.RequestFinished += async (_, request) => {};
イベントデータ
event Response
v1.9 で追加response のステータスとヘッダーがリクエストに対して受信されたときに発行されます。成功したレスポンスの場合、イベントのシーケンスは request
、response
、requestfinished
です。
使用法
Page.Response += async (_, response) => {};
イベントデータ
event WebSocket
v1.9 で追加WebSocket リクエストが送信されたときに発行されます。
使用法
Page.WebSocket += async (_, webSocket) => {};
イベントデータ
event Worker
v1.9 で追加専用の WebWorker がページによって生成されたときに発行されます。
使用法
Page.Worker += async (_, worker) => {};
イベントデータ
Deprecated
Accessibility
v1.9 で追加使用法
Page.Accessibility
型
CheckAsync
v1.9 で追加代わりにロケーターベースの Locator.CheckAsync() を使用してください。ロケーターの詳細をご覧ください。
このメソッドは、次の手順を実行して selector に一致する要素をチェックします。
- selector に一致する要素を見つけます。一致する要素がない場合は、一致する要素が DOM にアタッチされるまで待機します。
- 一致する要素がチェックボックスまたはラジオ入力であることを確認します。そうでない場合、このメソッドは例外をスローします。要素がすでにチェックされている場合、このメソッドはすぐに戻ります。
- Force オプションが設定されていない限り、一致する要素のアクション実行可能性チェックを待機します。チェック中に要素がデタッチされた場合、アクション全体が再試行されます。
- 必要に応じて、要素をビューにスクロールします。
- Page.Mouse を使用して、要素の中央をクリックします。
- 要素がチェックされていることを確認します。そうでない場合、このメソッドは例外をスローします。
指定された Timeout 中にすべての手順が完了しなかった場合、このメソッドは TimeoutError をスローします。ゼロタイムアウトを渡すと、これが無効になります。
使用法
await Page.CheckAsync(selector, options);
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
options
PageCheckOptions?
(省略可能)-
実行可能性チェックをバイパスするかどうか。デフォルトは
false
です。 -
非推奨
このオプションは効果がありません。
このオプションは効果がありません。
-
Position
Position? (省略可能)v1.11 で追加#-
X
[float] -
Y
[float]
要素のパディングボックスの左上隅を基準に使用するポイント。指定しない場合は、要素の表示可能なポイントの一部を使用します。
-
-
Strict
bool? (オプション)v1.14 で追加#true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。
-
Timeout
[float]? (省略可能)#最大タイムアウト時間 (ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.SetDefaultTimeout() または Page.SetDefaultTimeout() メソッドを使用して変更できます。 -
設定すると、このメソッドは 実行可能性チェックのみを実行し、アクションをスキップします。デフォルトは
false
です。アクションを実行せずに要素がアクションの準備が整うまで待機するのに役立ちます。
-
戻り値
ClickAsync
v1.9 で追加代わりにロケーターベースの Locator.ClickAsync() を使用してください。ロケーターの詳細をご覧ください。
このメソッドは、次の手順を実行して selector に一致する要素をクリックします。
- selector に一致する要素を見つけます。一致する要素がない場合は、一致する要素が DOM にアタッチされるまで待機します。
- Force オプションが設定されていない限り、一致する要素のアクション実行可能性チェックを待機します。チェック中に要素がデタッチされた場合、アクション全体が再試行されます。
- 必要に応じて、要素をビューにスクロールします。
- Page.Mouse を使用して、要素の中央、または指定された Position をクリックします。
- NoWaitAfter オプションが設定されていない限り、開始されたナビゲーションが成功または失敗するのを待ちます。
指定されたタイムアウト時間内にすべてのステップが完了しなかった場合、このメソッドはTimeoutErrorをスローします。タイムアウトにゼロを渡すと、これは無効になります。
使用法
await Page.ClickAsync(selector, options);
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
options
PageClickOptions?
(任意)-
Button
enum MouseButton { Left, Right, Middle }?
(任意)#デフォルトは
left
です。 -
デフォルトは1です。UIEvent.detailを参照してください。
-
Delay
[float]? (任意)#mousedown
とmouseup
の間で待機する時間(ミリ秒単位)。デフォルトは0です。 -
実行可能性チェックをバイパスするかどうか。デフォルトは
false
です。 -
Modifiers
IEnumerable?<enum KeyboardModifier { Alt, Control, ControlOrMeta, Meta, Shift }
> (任意)#押す修飾キー。操作中にこれらの修飾キーのみが押されていることを保証し、その後、現在の修飾キーを復元します。指定しない場合、現在押されている修飾キーが使用されます。"ControlOrMeta"は、WindowsおよびLinuxでは"Control"、macOSでは"Meta"に解決されます。
-
非推奨
このオプションは将来、デフォルトで
true
になります。ナビゲーションを開始するアクションは、これらのナビゲーションが発生し、ページがロードを開始するのを待機しています。このフラグを設定することで、待機をオプトアウトできます。このオプションは、アクセスできないページにナビゲートする場合など、例外的なケースでのみ必要になります。デフォルトは
false
です。 -
Position
Position? (任意)#-
X
[float] -
Y
[float]
要素のパディングボックスの左上隅を基準に使用するポイント。指定しない場合は、要素の表示可能なポイントの一部を使用します。
-
-
Strict
bool? (オプション)v1.14 で追加#true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。
-
Timeout
[float]? (任意)#最大タイムアウト時間 (ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.SetDefaultTimeout() または Page.SetDefaultTimeout() メソッドを使用して変更できます。 -
設定した場合、このメソッドはアクション実行可能性チェックのみを実行し、アクションをスキップします。デフォルトは
false
です。アクションを実行せずに、要素がアクションの準備ができるまで待機するのに役立ちます。キーボードmodifiers
は、それらのキーが押されている場合にのみ表示される要素をテストできるように、trial
に関係なく押されることに注意してください。
-
戻り値
DblClickAsync
v1.9 で追加ロケーターベースのLocator.DblClickAsync()を代わりに使用してください。ロケーターの詳細をご覧ください。
このメソッドは、selectorに一致する要素をダブルクリックするために、次のステップを実行します。
- selectorに一致する要素を検索します。一致する要素がない場合は、一致する要素がDOMにアタッチされるまで待機します。
- アクション実行可能性チェックがForceオプションが設定されていない限り、一致した要素に対して実行されるのを待機します。チェック中に要素がデタッチされた場合、アクション全体が再試行されます。
- 必要に応じて、要素をビューにスクロールします。
- Page.Mouseを使用して、要素の中央、または指定されたPositionでダブルクリックします。
指定されたタイムアウト時間内にすべてのステップが完了しなかった場合、このメソッドはTimeoutErrorをスローします。タイムアウトにゼロを渡すと、これは無効になります。
page.dblclick()
は、2つのclick
イベントと1つのdblclick
イベントをディスパッチします。
使用法
await Page.DblClickAsync(selector, options);
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
options
PageDblClickOptions?
(任意)-
Button
enum MouseButton { Left, Right, Middle }?
(任意)#デフォルトは
left
です。 -
Delay
[float]? (任意)#mousedown
とmouseup
の間で待機する時間(ミリ秒単位)。デフォルトは0です。 -
実行可能性チェックをバイパスするかどうか。デフォルトは
false
です。 -
Modifiers
IEnumerable?<enum KeyboardModifier { Alt, Control, ControlOrMeta, Meta, Shift }
> (任意)#押す修飾キー。操作中にこれらの修飾キーのみが押されていることを保証し、その後、現在の修飾キーを復元します。指定しない場合、現在押されている修飾キーが使用されます。"ControlOrMeta"は、WindowsおよびLinuxでは"Control"、macOSでは"Meta"に解決されます。
-
非推奨
このオプションは効果がありません。
このオプションは効果がありません。
-
Position
Position? (任意)#-
X
[float] -
Y
[float]
要素のパディングボックスの左上隅を基準に使用するポイント。指定しない場合は、要素の表示可能なポイントの一部を使用します。
-
-
Strict
bool? (オプション)v1.14 で追加#true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。
-
Timeout
[float]? (任意)#最大タイムアウト時間 (ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.SetDefaultTimeout() または Page.SetDefaultTimeout() メソッドを使用して変更できます。 -
設定した場合、このメソッドはアクション実行可能性チェックのみを実行し、アクションをスキップします。デフォルトは
false
です。アクションを実行せずに、要素がアクションの準備ができるまで待機するのに役立ちます。キーボードmodifiers
は、それらのキーが押されている場合にのみ表示される要素をテストできるように、trial
に関係なく押されることに注意してください。
-
戻り値
DispatchEventAsync
v1.9 で追加ロケーターベースのLocator.DispatchEventAsync()を代わりに使用してください。ロケーターの詳細をご覧ください。
以下のスニペットは、要素にclick
イベントをディスパッチします。要素の可視性の状態に関係なく、click
がディスパッチされます。これは、element.click()を呼び出すことと同等です。
使用法
await page.DispatchEventAsync("button#submit", "click");
内部的には、指定されたtypeに基づいてイベントのインスタンスを作成し、eventInitプロパティで初期化し、要素にディスパッチします。イベントは、デフォルトでcomposed
、cancelable
、およびバブルアップします。
eventInitはイベント固有であるため、初期プロパティのリストについてはイベントのドキュメントを参照してください。
- DeviceMotionEvent
- DeviceOrientationEvent
- DragEvent
- Event
- FocusEvent
- KeyboardEvent
- MouseEvent
- PointerEvent
- TouchEvent
- WheelEvent
ライブオブジェクトをイベントに渡したい場合は、JSHandle
をプロパティ値として指定することもできます。
var dataTransfer = await page.EvaluateHandleAsync("() => new DataTransfer()");
await page.DispatchEventAsync("#source", "dragstart", new { dataTransfer });
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
DOMイベントタイプ:
"click"
、"dragstart"
など。 -
eventInit
EvaluationArgument? (任意)#オプションのイベント固有の初期化プロパティ。
-
options
PageDispatchEventOptions?
(任意)-
Strict
bool? (オプション)v1.14 で追加#true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。
-
Timeout
[float]? (任意)#最大タイムアウト時間 (ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.SetDefaultTimeout() または Page.SetDefaultTimeout() メソッドを使用して変更できます。
-
戻り値
EvalOnSelectorAsync
v1.9 で追加このメソッドは、要素がアクション実行可能性チェックに合格するのを待機しないため、テストが不安定になる可能性があります。代わりに、Locator.EvaluateAsync()、他のLocatorヘルパーメソッド、またはWebファーストのアサーションを使用してください。
このメソッドは、ページ内で指定されたセレクターに一致する要素を見つけ、それを最初の引数としてexpressionに渡します。セレクターに一致する要素がない場合、メソッドはエラーをスローします。expressionの値を返します。
expressionがPromiseを返す場合、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");
引数
-
クエリするセレクター。
-
ブラウザコンテキストで評価される JavaScript 式。式が関数として評価される場合、関数は自動的に呼び出されます。
-
arg
EvaluationArgument? (任意)#expressionに渡すオプションの引数。
-
options
PageEvalOnSelectorOptions?
(任意)
戻り値
- [object]#
EvalOnSelectorAllAsync
v1.9 で追加ほとんどの場合、Locator.EvaluateAllAsync()、他のLocatorヘルパーメソッド、およびWebファーストのアサーションの方が適しています。
このメソッドは、ページ内で指定されたセレクターに一致するすべての要素を見つけ、一致した要素の配列を最初の引数としてexpressionに渡します。expressionの呼び出しの結果を返します。
expressionがPromiseを返す場合、Page.EvalOnSelectorAllAsync()はPromiseが解決されるのを待って、その値を返します。
使用法
var divsCount = await page.EvalOnSelectorAllAsync<bool>("div", "(divs, min) => divs.length >= min", 10);
引数
-
クエリするセレクター。
-
ブラウザコンテキストで評価される JavaScript 式。式が関数として評価される場合、関数は自動的に呼び出されます。
-
arg
EvaluationArgument? (任意)#expressionに渡すオプションの引数。
戻り値
- [object]#
FillAsync
v1.9 で追加ロケーターベースのLocator.FillAsync()を代わりに使用してください。ロケーターの詳細をご覧ください。
このメソッドは、selectorに一致する要素を待機し、アクション実行可能性チェックを待機し、要素をフォーカスし、入力し、入力後にinput
イベントをトリガーします。入力フィールドをクリアするには、空の文字列を渡すことができることに注意してください。
ターゲット要素が<input>
、<textarea>
、または[contenteditable]
要素でない場合、このメソッドはエラーをスローします。ただし、要素が、関連付けられたcontrolを持つ<label>
要素内にある場合、代わりにコントロールが入力されます。
きめ細かいキーボードイベントを送信するには、Locator.PressSequentiallyAsync()を使用してください。
使用法
await Page.FillAsync(selector, value, options);
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
<input>
、<textarea>
、または[contenteditable]
要素に入力する値。 -
options
PageFillOptions?
(任意)-
実行可能性チェックをバイパスするかどうか。デフォルトは
false
です。 -
非推奨
このオプションは効果がありません。
このオプションは効果がありません。
-
Strict
bool? (オプション)v1.14 で追加#true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。
-
Timeout
[float]? (任意)#最大タイムアウト時間 (ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.SetDefaultTimeout() または Page.SetDefaultTimeout() メソッドを使用して変更できます。
-
戻り値
FocusAsync
v1.9 で追加ロケーターベースのLocator.FocusAsync()を代わりに使用してください。ロケーターの詳細をご覧ください。
このメソッドは、selectorを持つ要素を取得し、フォーカスします。selectorに一致する要素がない場合、メソッドは一致する要素がDOMに表示されるまで待機します。
使用法
await Page.FocusAsync(selector, options);
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
options
PageFocusOptions?
(任意)-
Strict
bool? (オプション)v1.14 で追加#true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。
-
Timeout
[float]? (任意)#最大タイムアウト時間 (ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.SetDefaultTimeout() または Page.SetDefaultTimeout() メソッドを使用して変更できます。
-
戻り値
GetAttributeAsync
v1.9 で追加ロケーターベースのLocator.GetAttributeAsync()を代わりに使用してください。ロケーターの詳細をご覧ください。
要素の属性値を返します。
使用法
await Page.GetAttributeAsync(selector, name, options);
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
値を取得する属性名。
-
options
PageGetAttributeOptions?
(任意)-
Strict
bool? (オプション)v1.14 で追加#true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。
-
Timeout
[float]? (任意)#最大タイムアウト時間 (ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.SetDefaultTimeout() または Page.SetDefaultTimeout() メソッドを使用して変更できます。
-
戻り値
HoverAsync
v1.9 で追加ロケーターベースのLocator.HoverAsync()を代わりに使用してください。ロケーターの詳細をご覧ください。
このメソッドは、selectorに一致する要素にホバーするために、次のステップを実行します。
- selectorに一致する要素を検索します。一致する要素がない場合は、一致する要素がDOMにアタッチされるまで待機します。
- アクション実行可能性チェックがForceオプションが設定されていない限り、一致した要素に対して実行されるのを待機します。チェック中に要素がデタッチされた場合、アクション全体が再試行されます。
- 必要に応じて、要素をビューにスクロールします。
- Page.Mouseを使用して、要素の中央、または指定されたPosition上にホバーします。
指定されたタイムアウト時間内にすべてのステップが完了しなかった場合、このメソッドはTimeoutErrorをスローします。タイムアウトにゼロを渡すと、これは無効になります。
使用法
await Page.HoverAsync(selector, options);
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
options
PageHoverOptions?
(任意)-
実行可能性チェックをバイパスするかどうか。デフォルトは
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() メソッドを使用して変更できます。 -
設定した場合、このメソッドはアクション実行可能性チェックのみを実行し、アクションをスキップします。デフォルトは
false
です。アクションを実行せずに、要素がアクションの準備ができるまで待機するのに役立ちます。キーボードmodifiers
は、それらのキーが押されている場合にのみ表示される要素をテストできるように、trial
に関係なく押されることに注意してください。
-
戻り値
InnerHTMLAsync
v1.9 で追加ロケーターベースのLocator.InnerHTMLAsync()を代わりに使用してください。ロケーターの詳細をご覧ください。
element.innerHTML
を返します。
使用法
await Page.InnerHTMLAsync(selector, options);
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
options
PageInnerHTMLOptions?
(任意)-
Strict
bool? (オプション)v1.14 で追加#true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。
-
Timeout
[float]? (任意)#最大タイムアウト時間 (ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.SetDefaultTimeout() または Page.SetDefaultTimeout() メソッドを使用して変更できます。
-
戻り値
InnerTextAsync
v1.9 で追加ロケーターベースのLocator.InnerTextAsync()を代わりに使用してください。ロケーターの詳細をご覧ください。
element.innerText
を返します。
使用法
await Page.InnerTextAsync(selector, options);
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
options
PageInnerTextOptions?
(任意)-
Strict
bool? (オプション)v1.14 で追加#true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。
-
Timeout
[float]? (任意)#最大タイムアウト時間 (ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.SetDefaultTimeout() または Page.SetDefaultTimeout() メソッドを使用して変更できます。
-
戻り値
InputValueAsync
v1.13 で追加ロケーターベースのLocator.InputValueAsync()を代わりに使用してください。ロケーターの詳細をご覧ください。
選択された<input>
、<textarea>
、または<select>
要素のinput.value
を返します。
入力要素以外の場合は例外をスローします。ただし、要素が、関連付けられたcontrolを持つ<label>
要素内にある場合、コントロールの値を返します。
使用法
await Page.InputValueAsync(selector, options);
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
options
PageInputValueOptions?
(任意)-
Strict
bool? (オプション)v1.14 で追加#true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。
-
Timeout
[float]? (任意)#最大タイムアウト時間 (ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.SetDefaultTimeout() または Page.SetDefaultTimeout() メソッドを使用して変更できます。
-
戻り値
IsCheckedAsync
v1.9 で追加ロケーターベースのLocator.IsCheckedAsync()を代わりに使用してください。ロケーターの詳細をご覧ください。
要素がチェックされているかどうかを返します。要素がチェックボックスまたはラジオ入力でない場合は例外をスローします。
使用法
await Page.IsCheckedAsync(selector, options);
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
options
PageIsCheckedOptions?
(任意)-
Strict
bool? (オプション)v1.14 で追加#true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。
-
Timeout
[float]? (任意)#最大タイムアウト時間 (ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.SetDefaultTimeout() または Page.SetDefaultTimeout() メソッドを使用して変更できます。
-
戻り値
IsDisabledAsync
v1.9 で追加ロケーターベースのLocator.IsDisabledAsync()を代わりに使用してください。ロケーターの詳細をご覧ください。
要素が無効になっているかどうか、つまり有効の反対を返します。
使用法
await Page.IsDisabledAsync(selector, options);
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
options
PageIsDisabledOptions?
(任意)-
Strict
bool? (オプション)v1.14 で追加#true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。
-
Timeout
[float]? (任意)#最大タイムアウト時間 (ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.SetDefaultTimeout() または Page.SetDefaultTimeout() メソッドを使用して変更できます。
-
戻り値
IsEditableAsync
v1.9 で追加ロケーターベースのLocator.IsEditableAsync()を代わりに使用してください。ロケーターの詳細をご覧ください。
要素が編集可能かどうかを返します。
使用法
await Page.IsEditableAsync(selector, options);
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
options
PageIsEditableOptions?
(任意)-
Strict
bool? (オプション)v1.14 で追加#true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。
-
Timeout
[float]? (任意)#最大タイムアウト時間 (ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.SetDefaultTimeout() または Page.SetDefaultTimeout() メソッドを使用して変更できます。
-
戻り値
IsEnabledAsync
v1.9 で追加ロケーターベースのLocator.IsEnabledAsync()を代わりに使用してください。ロケーターの詳細をご覧ください。
要素が有効かどうかを返します。
使用法
await Page.IsEnabledAsync(selector, options);
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
options
PageIsEnabledOptions?
(任意)-
Strict
bool? (オプション)v1.14 で追加#true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。
-
Timeout
[float]? (任意)#最大タイムアウト時間 (ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.SetDefaultTimeout() または Page.SetDefaultTimeout() メソッドを使用して変更できます。
-
戻り値
IsHiddenAsync
v1.9 で追加ロケーターベースのLocator.IsHiddenAsync()を代わりに使用してください。ロケーターの詳細をご覧ください。
要素が非表示かどうか、つまり可視の反対を返します。selectorがどの要素にも一致しない場合、非表示と見なされます。
使用法
await Page.IsHiddenAsync(selector, options);
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
options
PageIsHiddenOptions?
(任意)-
Strict
bool? (オプション)v1.14 で追加#true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。
-
Timeout
[float]? (任意)#非推奨このオプションは無視されます。Page.IsHiddenAsync()は、要素が非表示になるのを待機せず、すぐに戻ります。
-
戻り値
IsVisibleAsync
v1.9 で追加ロケーターベースのLocator.IsVisibleAsync()を代わりに使用してください。ロケーターの詳細をご覧ください。
要素が可視であるかどうかを返します。selector は、どの要素にも一致しない場合、不可視とみなされます。
使用法
await Page.IsVisibleAsync(selector, options);
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
options
PageIsVisibleOptions?
(任意)-
Strict
bool? (オプション)v1.14 で追加#true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。
-
Timeout
[float]? (任意)#非推奨このオプションは無視されます。Page.IsVisibleAsync() は、要素が可視になるのを待たずに、すぐに戻ります。
-
戻り値
PressAsync
v1.9 で追加代わりにロケーターベースの 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
, ControlOrMeta
。ControlOrMeta
は、Windows および Linux では Control
に、macOS では Meta
に解決されます。
Shift
を押したままにすると、key に対応するテキストが、大文字で入力されます。
key が単一の文字である場合、大文字と小文字が区別されます。したがって、a
と A
の値は、それぞれ異なるテキストを生成します。
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" });
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
押すキーの名前、または
ArrowLeft
やa
のように生成する文字。 -
options
PagePressOptions?
(任意)-
Delay
[float]? (任意)#keydown
とkeyup
の間の待ち時間(ミリ秒単位)。デフォルトは 0 です。 -
非推奨
このオプションは将来、デフォルトで
true
になります。ナビゲーションを開始するアクションは、これらのナビゲーションが発生し、ページがロードを開始するのを待機しています。このフラグを設定することで、待機をオプトアウトできます。このオプションは、アクセスできないページにナビゲートする場合など、例外的なケースでのみ必要になります。デフォルトは
false
です。 -
Strict
bool? (オプション)v1.14 で追加#true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。
-
Timeout
[float]? (任意)#最大タイムアウト時間 (ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.SetDefaultTimeout() または Page.SetDefaultTimeout() メソッドを使用して変更できます。
-
戻り値
QuerySelectorAsync
v1.9 で追加代わりにロケーターベースの Page.Locator() を使用してください。ロケーターの詳細をお読みください。
このメソッドは、ページ内で指定されたセレクターに一致する要素を検索します。セレクターに一致する要素がない場合、戻り値は null
になります。ページ上の要素を待機するには、Locator.WaitForAsync() を使用してください。
使用法
await Page.QuerySelectorAsync(selector, options);
引数
-
クエリするセレクター。
-
options
PageQuerySelectorOptions?
(任意)
戻り値
QuerySelectorAllAsync
v1.9 で追加代わりにロケーターベースの Page.Locator() を使用してください。ロケーターの詳細をお読みください。
このメソッドは、ページ内で指定されたセレクターに一致するすべての要素を検索します。セレクターに一致する要素がない場合、戻り値は []
になります。
使用法
await Page.QuerySelectorAllAsync(selector);
引数
戻り値
RunAndWaitForNavigationAsync
v1.9 で追加このメソッドは本質的に競合状態が発生しやすいため、代わりに 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 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.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 で追加代わりにロケーターベースの 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" });
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
values
string | ElementHandle | IEnumerable |SelectOption
| IEnumerable | IEnumerable?#-
Value
string? (任意)option.value
で一致させます。任意。 -
Label
string? (任意)option.label
で一致させます。任意。 -
Index
int? (任意)インデックスで一致させます。任意。
選択するオプション。
<select>
にmultiple
属性がある場合、一致するすべてのオプションが選択されます。それ以外の場合は、渡されたオプションのいずれかに一致する最初のオプションのみが選択されます。文字列値は、値とラベルの両方に一致します。オプションは、指定されたすべてのプロパティが一致する場合に一致するとみなされます。 -
-
options
PageSelectOptionOptions?
(任意)-
実行可能性チェックをバイパスするかどうか。デフォルトは
false
です。 -
非推奨
このオプションは効果がありません。
このオプションは効果がありません。
-
Strict
bool? (オプション)v1.14 で追加#true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。
-
Timeout
[float]? (任意)#最大タイムアウト時間 (ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.SetDefaultTimeout() または Page.SetDefaultTimeout() メソッドを使用して変更できます。
-
戻り値
SetCheckedAsync
v1.15 で追加代わりにロケーターベースの Locator.SetCheckedAsync() を使用してください。ロケーターの詳細をお読みください。
このメソッドは、selector に一致する要素をチェックまたはチェック解除するために、次の手順を実行します。
- selector に一致する要素を検索します。存在しない場合は、一致する要素が DOM にアタッチされるまで待機します。
- 一致した要素がチェックボックスまたはラジオ入力であることを確認します。そうでない場合、このメソッドは例外をスローします。
- 要素がすでに正しいチェック状態になっている場合、このメソッドはすぐに戻ります。
- 操作性チェックが Force オプションが設定されていない限り、一致した要素に対して待機します。チェック中に要素がデタッチされた場合、アクション全体が再試行されます。
- 必要に応じて、要素をビューにスクロールします。
- Page.Mouse を使用して、要素の中央をクリックします。
- 要素がチェックまたはチェック解除されたことを確認します。そうでない場合、このメソッドは例外をスローします。
指定された Timeout の間にすべての手順が完了しなかった場合、このメソッドは TimeoutError をスローします。タイムアウトをゼロにすると、これは無効になります。
使用法
await Page.SetCheckedAsync(selector, checked, options);
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
チェックボックスをチェックまたはチェック解除するかどうか。
-
options
PageSetCheckedOptions?
(任意)-
実行可能性チェックをバイパスするかどうか。デフォルトは
false
です。 -
非推奨
このオプションは効果がありません。
このオプションは効果がありません。
-
Position
Position? (任意)#-
X
[float] -
Y
[float]
要素のパディングボックスの左上隅を基準に使用するポイント。指定しない場合は、要素の表示可能なポイントの一部を使用します。
-
-
true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。
-
Timeout
[float]? (任意)#最大タイムアウト時間 (ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.SetDefaultTimeout() または Page.SetDefaultTimeout() メソッドを使用して変更できます。 -
設定すると、このメソッドは 実行可能性チェックのみを実行し、アクションをスキップします。デフォルトは
false
です。アクションを実行せずに要素がアクションの準備が整うまで待機するのに役立ちます。
-
戻り値
SetInputFilesAsync
v1.9 で追加代わりにロケーターベースの Locator.SetInputFilesAsync() を使用してください。ロケーターの詳細をお読みください。
ファイル入力の値を、これらのファイルパスまたはファイルに設定します。filePaths
の一部が相対パスである場合、それらは現在の作業ディレクトリからの相対パスとして解決されます。空の配列の場合、選択されたファイルをクリアします。[webkitdirectory]
属性を持つ入力の場合、単一のディレクトリパスのみがサポートされます。
このメソッドは、selector が input 要素を指していることを想定しています。ただし、要素が、関連付けられた control を持つ <label>
要素内にある場合、代わりにその control をターゲットにします。
使用法
await Page.SetInputFilesAsync(selector, files, options);
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
files
string | IEnumerable<string> |FilePayload
| IEnumerable<FilePayload
># -
options
PageSetInputFilesOptions?
(任意)-
非推奨
このオプションは効果がありません。
このオプションは効果がありません。
-
Strict
bool? (オプション)v1.14 で追加#true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。
-
Timeout
[float]? (任意)#最大タイムアウト時間 (ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.SetDefaultTimeout() または Page.SetDefaultTimeout() メソッドを使用して変更できます。
-
戻り値
TapAsync
v1.9 で追加代わりにロケーターベースの Locator.TapAsync() を使用してください。ロケーターの詳細をお読みください。
このメソッドは、selector に一致する要素をタップするために、次の手順を実行します。
- selector に一致する要素を検索します。存在しない場合は、一致する要素が DOM にアタッチされるまで待機します。
- 操作性チェックが Force オプションが設定されていない限り、一致した要素に対して待機します。チェック中に要素がデタッチされた場合、アクション全体が再試行されます。
- 必要に応じて、要素をビューにスクロールします。
- 要素の中心、または指定された Position をタップするには、Page.Touchscreen を使用します。
指定された Timeout の間にすべての手順が完了しなかった場合、このメソッドは TimeoutError をスローします。タイムアウトをゼロにすると、これは無効になります。
Page.TapAsync() メソッドは、ブラウザーコンテキストの HasTouch オプションが false の場合、例外をスローします。
使用法
await Page.TapAsync(selector, options);
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
options
PageTapOptions?
(任意)-
実行可能性チェックをバイパスするかどうか。デフォルトは
false
です。 -
Modifiers
IEnumerable?<enum KeyboardModifier { Alt, Control, ControlOrMeta, Meta, Shift }
> (任意)#押す修飾キー。操作中にこれらの修飾キーのみが押されていることを保証し、その後、現在の修飾キーを復元します。指定しない場合、現在押されている修飾キーが使用されます。"ControlOrMeta"は、WindowsおよびLinuxでは"Control"、macOSでは"Meta"に解決されます。
-
非推奨
このオプションは効果がありません。
このオプションは効果がありません。
-
Position
Position? (任意)#-
X
[float] -
Y
[float]
要素のパディングボックスの左上隅を基準に使用するポイント。指定しない場合は、要素の表示可能なポイントの一部を使用します。
-
-
Strict
bool? (オプション)v1.14 で追加#true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。
-
Timeout
[float]? (任意)#最大タイムアウト時間 (ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.SetDefaultTimeout() または Page.SetDefaultTimeout() メソッドを使用して変更できます。 -
設定した場合、このメソッドはアクション実行可能性チェックのみを実行し、アクションをスキップします。デフォルトは
false
です。アクションを実行せずに、要素がアクションの準備ができるまで待機するのに役立ちます。キーボードmodifiers
は、それらのキーが押されている場合にのみ表示される要素をテストできるように、trial
に関係なく押されることに注意してください。
-
戻り値
TextContentAsync
v1.9 で追加代わりにロケーターベースの Locator.TextContentAsync() を使用してください。ロケーターの詳細をお読みください。
element.textContent
を返します。
使用法
await Page.TextContentAsync(selector, options);
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
options
PageTextContentOptions?
(任意)-
Strict
bool? (オプション)v1.14 で追加#true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。
-
Timeout
[float]? (任意)#最大タイムアウト時間 (ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.SetDefaultTimeout() または Page.SetDefaultTimeout() メソッドを使用して変更できます。
-
戻り値
TypeAsync
v1.9 で追加ほとんどの場合、代わりに Locator.FillAsync() を使用する必要があります。ページに特別なキーボード処理がある場合にのみ、キーを 1 つずつ押す必要があります。この場合は、Locator.PressSequentiallyAsync() を使用してください。
テキスト内の各文字に対して、keydown
、keypress
/input
、および keyup
イベントを送信します。page.type
は、きめ細かいキーボードイベントを送信するために使用できます。フォームフィールドに値を入力するには、Page.FillAsync() を使用してください。
Control
や ArrowDown
などの特殊キーを押すには、Keyboard.PressAsync() を使用してください。
使用法
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
フォーカスされた要素に入力するテキスト。
-
options
PageTypeOptions?
(任意)-
Delay
[float]? (任意)#キー押下間の待ち時間(ミリ秒単位)。デフォルトは 0 です。
-
非推奨
このオプションは効果がありません。
このオプションは効果がありません。
-
Strict
bool? (オプション)v1.14 で追加#true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。
-
Timeout
[float]? (任意)#最大タイムアウト時間 (ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.SetDefaultTimeout() または Page.SetDefaultTimeout() メソッドを使用して変更できます。
-
戻り値
UncheckAsync
v1.9 で追加代わりにロケーターベースの Locator.UncheckAsync() を使用してください。ロケーターの詳細をお読みください。
このメソッドは、selector に一致する要素をチェック解除するために、次の手順を実行します。
- selector に一致する要素を検索します。存在しない場合は、一致する要素が DOM にアタッチされるまで待機します。
- 一致した要素がチェックボックスまたはラジオ入力であることを確認します。そうでない場合、このメソッドは例外をスローします。要素がすでにチェック解除されている場合、このメソッドはすぐに戻ります。
- 操作性チェックが Force オプションが設定されていない限り、一致した要素に対して待機します。チェック中に要素がデタッチされた場合、アクション全体が再試行されます。
- 必要に応じて、要素をビューにスクロールします。
- Page.Mouse を使用して、要素の中央をクリックします。
- 要素がチェック解除されたことを確認します。そうでない場合、このメソッドは例外をスローします。
指定された Timeout の間にすべての手順が完了しなかった場合、このメソッドは TimeoutError をスローします。タイムアウトをゼロにすると、これは無効になります。
使用法
await Page.UncheckAsync(selector, options);
引数
-
要素を検索するためのセレクター。セレクターを満たす要素が複数ある場合は、最初の要素が使用されます。
-
options
PageUncheckOptions?
(任意)-
実行可能性チェックをバイパスするかどうか。デフォルトは
false
です。 -
非推奨
このオプションは効果がありません。
このオプションは効果がありません。
-
Position
Position? (省略可能)v1.11 で追加#-
X
[float] -
Y
[float]
要素のパディングボックスの左上隅を基準に使用するポイント。指定しない場合は、要素の表示可能なポイントの一部を使用します。
-
-
Strict
bool? (オプション)v1.14 で追加#true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、この呼び出しは例外をスローします。
-
Timeout
[float]? (任意)#最大タイムアウト時間 (ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.SetDefaultTimeout() または Page.SetDefaultTimeout() メソッドを使用して変更できます。 -
設定すると、このメソッドは 実行可能性チェックのみを実行し、アクションをスキップします。デフォルトは
false
です。アクションを実行せずに要素がアクションの準備が整うまで待機するのに役立ちます。
-
戻り値
WaitForSelectorAsync
v1.9 で追加可視性をアサートするウェブアサーション、またはロケーターベースの Locator.WaitForAsync() を代わりに使用してください。ロケーターの詳細をお読みください。
セレクターで指定された要素が State オプションを満たすと戻ります。hidden
または detached
を待機している場合は null
を返します。
Playwright は、アクションを実行する前に要素の準備ができるのを自動的に待機します。Locator オブジェクトとウェブファーストアサーションを使用すると、コードは wait-for-selector-free になります。
selector が State オプション(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();
}
}
引数
-
クエリするセレクター。
-
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 で追加本番環境でタイムアウトを待機することは絶対にしないでください。時間を待機するテストは、本質的に不安定です。Locator アクションと自動的に待機するウェブアサーションを使用してください。
指定された timeout (ミリ秒単位)の間待機します。
page.waitForTimeout()
はデバッグにのみ使用してください。本番環境でタイマーを使用するテストは不安定になります。代わりに、ネットワークイベント、セレクターの可視化などのシグナルを使用してください。
使用法
// Wait for 1 second
await page.WaitForTimeoutAsync(1000);
引数
-
timeout
[float]#待機するタイムアウト
戻り値