ElementHandle
- 継承元: JSHandle
ElementHandle は、ページ内の DOM 要素を表します。ElementHandle は、Page.QuerySelectorAsync() メソッドで作成できます。
ElementHandle の使用は推奨されません。Locator オブジェクトと web-first アサーションを代わりに使用してください。
var handle = await page.QuerySelectorAsync("a");
await handle.ClickAsync();
ElementHandle は、ハンドルが JsHandle.DisposeAsync() で破棄されない限り、DOM 要素がガベージコレクションされるのを防ぎます。ElementHandle は、元のフレームがナビゲーションされると自動的に破棄されます。
ElementHandle インスタンスは、Page.EvalOnSelectorAsync() および Page.EvaluateAsync() メソッドの引数として使用できます。
Locator と ElementHandle の違いは、ElementHandle が特定の要素を指すのに対し、Locator は要素を取得する方法のロジックを捉える点です。
以下の例では、handle はページ上の特定の DOM 要素を指します。その要素がテキストを変更したり、React によって全く異なるコンポーネントをレンダリングするために使用された場合でも、handle は依然としてその DOM 要素を指しています。これは予期しない動作につながる可能性があります。
var handle = await page.QuerySelectorAsync("text=Submit");
await handle.HoverAsync();
await handle.ClickAsync();
locator を使用すると、element
が使用されるたびに、最新の DOM 要素がセレクターを使用してページ内で特定されます。したがって、以下のスニペットでは、基になる DOM 要素が 2 回特定されます。
var locator = page.GetByText("Submit");
await locator.HoverAsync();
await locator.ClickAsync();
メソッド
BoundingBoxAsync
v1.9 より前に追加このメソッドは、要素のバウンディングボックスを返します。要素が表示されていない場合は null
を返します。バウンディングボックスは、メインフレームのビューポート (通常はブラウザウィンドウと同じ) を基準に計算されます。
スクロールは、Element.getBoundingClientRect と同様に、返されるバウンディングボックスに影響を与えます。つまり、x
または y
が負の値になる可能性があります。
子フレームの要素は、Element.getBoundingClientRect とは異なり、メインフレームを基準としたバウンディングボックスを返します。
ページが静的であると仮定すると、バウンディングボックスの座標を使用して入力を実行しても安全です。たとえば、次のスニペットは要素の中心をクリックする必要があります。
使用例
var box = await elementHandle.BoundingBoxAsync();
await page.Mouse.ClickAsync(box.X + box.Width / 2, box.Y + box.Height / 2);
戻り値
- BoundingBox?#
-
x
[float]要素の x 座標 (ピクセル単位)。
-
y
[float]要素の y 座標 (ピクセル単位)。
-
width
[float]要素の幅 (ピクセル単位)。
-
height
[float]要素の高さ (ピクセル単位)。
-
ContentFrameAsync
v1.9 より前に追加iframe ノードを参照する要素ハンドルに対してコンテンツフレームを返します。それ以外の場合は null
を返します。
使用例
await ElementHandle.ContentFrameAsync();
戻り値
OwnerFrameAsync
v1.9 より前に追加指定された要素を含むフレームを返します。
使用例
await ElementHandle.OwnerFrameAsync();
戻り値
WaitForElementStateAsync
v1.9 より前に追加要素が state を満たすと戻ります。
state パラメーターに応じて、このメソッドは actionability チェックのいずれかが成功するのを待ちます。要素が待機中にデタッチされた場合、このメソッドは例外をスローします。ただし、"hidden"
状態を待機している場合は除きます。
"visible"
要素が 表示 されるまで待ちます。"hidden"
要素が 非表示 になるか、デタッチされるまで待ちます。非表示の待機は、要素がデタッチされても例外をスローしないことに注意してください。"stable"
要素が 表示 かつ 安定 するまで待ちます。"enabled"
要素が 有効 になるまで待ちます。"disabled"
要素が 無効 になるまで待ちます。"editable"
要素が 編集可能 になるまで待ちます。
要素が Timeout ミリ秒の条件を満たさない場合、このメソッドは例外をスローします。
使用例
await ElementHandle.WaitForElementStateAsync(state, options);
引数
-
state
enum ElementState { Visible, Hidden, Stable, Enabled, Disabled, Editable }
#待機する状態。詳細については下記を参照してください。
-
options
ElementHandleWaitForElementStateOptions?
(optional)-
Timeout
[float]? (optional)#最大待機時間 (ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.SetDefaultTimeout() または Page.SetDefaultTimeout() メソッドを使用して変更できます。
-
戻り値
非推奨
CheckAsync
v1.9 より前に追加代わりに、locator ベースの Locator.CheckAsync() を使用してください。locator の詳細をお読みください。
このメソッドは、次の手順を実行して要素をチェックします。
- 要素がチェックボックスまたはラジオ入力であることを確認します。そうでない場合、このメソッドは例外をスローします。要素が既にチェックされている場合、このメソッドはすぐに戻ります。
- actionability チェックが要素で成功するのを待ちます。ただし、Force オプションが設定されている場合を除きます。
- 必要に応じて、要素をビューにスクロールします。
- Page.Mouse を使用して、要素の中心をクリックします。
- 要素がチェックされたことを確認します。そうでない場合、このメソッドは例外をスローします。
アクション中に要素が DOM からデタッチされた場合、このメソッドは例外をスローします。
指定された Timeout 時間内にすべての手順が完了しなかった場合、このメソッドは TimeoutError をスローします。タイムアウトに 0 を渡すと、これは無効になります。
使用例
await ElementHandle.CheckAsync(options);
引数
options
ElementHandleCheckOptions?
(optional)-
actionability チェックをバイパスするかどうか。デフォルトは
false
です。 -
非推奨
このオプションは効果がありません。
このオプションは効果がありません。
-
Position
Position? (optional)v1.11 で追加#-
X
[float] -
Y
[float]
要素のパディングボックスの左上隅を基準に使用するポイント。指定しない場合は、要素の可視ポイントを使用します。
-
-
Timeout
[float]? (optional)#最大待機時間 (ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.SetDefaultTimeout() または Page.SetDefaultTimeout() メソッドを使用して変更できます。 -
Trial
bool? (optional)v1.11 で追加#設定すると、このメソッドは actionability チェックのみを実行し、アクションをスキップします。デフォルトは
false
です。アクションを実行せずに要素がアクションの準備が整うまで待機するのに役立ちます。
-
戻り値
ClickAsync
v1.9 より前に追加代わりに、locator ベースの Locator.ClickAsync() を使用してください。locator の詳細をお読みください。
このメソッドは、次の手順を実行して要素をクリックします。
- actionability チェックが要素で成功するのを待ちます。ただし、Force オプションが設定されている場合を除きます。
- 必要に応じて、要素をビューにスクロールします。
- Page.Mouse を使用して、要素の中心、または指定された Position をクリックします。
- ナビゲーションが開始された場合、ナビゲーションが成功または失敗するのを待ちます。ただし、NoWaitAfter オプションが設定されている場合を除きます。
アクション中に要素が DOM からデタッチされた場合、このメソッドは例外をスローします。
指定された Timeout 時間内にすべての手順が完了しなかった場合、このメソッドは TimeoutError をスローします。タイムアウトに 0 を渡すと、これは無効になります。
使用例
await ElementHandle.ClickAsync(options);
引数
options
ElementHandleClickOptions?
(optional)-
Button
enum MouseButton { Left, Right, Middle }?
(optional)#デフォルトは
left
です。 -
デフォルトは 1 です。UIEvent.detail を参照してください。
-
Delay
[float]? (optional)#mousedown
とmouseup
の間の待機時間 (ミリ秒単位)。デフォルトは 0 です。 -
actionability チェックをバイパスするかどうか。デフォルトは
false
です。 -
Modifiers
IEnumerable?<enum KeyboardModifier { Alt, Control, ControlOrMeta, Meta, Shift }
> (optional)#押す修飾キー。操作中にこれらの修飾キーのみが押されていることを確認し、その後、現在の修飾キーを復元します。指定しない場合、現在押されている修飾キーが使用されます。"ControlOrMeta" は、Windows および Linux では "Control" に、macOS では "Meta" に解決されます。
-
非推奨
このオプションは、将来
true
がデフォルトになります。ナビゲーションを開始するアクションは、これらのナビゲーションが発生し、ページが読み込みを開始するのを待機しています。このフラグを設定することで、待機をオプトアウトできます。このオプションが必要になるのは、アクセスできないページにナビゲーションする場合などの例外的なケースのみです。デフォルトは
false
です。 -
Position
Position? (optional)#-
X
[float] -
Y
[float]
要素のパディングボックスの左上隅を基準に使用するポイント。指定しない場合は、要素の可視ポイントを使用します。
-
-
Timeout
[float]? (optional)#最大待機時間 (ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.SetDefaultTimeout() または Page.SetDefaultTimeout() メソッドを使用して変更できます。 -
Trial
bool? (optional)v1.11 で追加#設定すると、このメソッドは actionability チェックのみを実行し、アクションをスキップします。デフォルトは
false
です。アクションを実行せずに要素がアクションの準備が整うまで待機するのに役立ちます。
-
戻り値
DblClickAsync
v1.9 より前に追加代わりに、locator ベースの Locator.DblClickAsync() を使用してください。locator の詳細をお読みください。
このメソッドは、次の手順を実行して要素をダブルクリックします。
- actionability チェックが要素で成功するのを待ちます。ただし、Force オプションが設定されている場合を除きます。
- 必要に応じて、要素をビューにスクロールします。
- Page.Mouse を使用して、要素の中心、または指定された Position をダブルクリックします。
アクション中に要素が DOM からデタッチされた場合、このメソッドは例外をスローします。
指定された Timeout 時間内にすべての手順が完了しなかった場合、このメソッドは TimeoutError をスローします。タイムアウトに 0 を渡すと、これは無効になります。
elementHandle.dblclick()
は、2 つの click
イベントと 1 つの dblclick
イベントをディスパッチします。
使用例
await ElementHandle.DblClickAsync(options);
引数
options
ElementHandleDblClickOptions?
(optional)-
Button
enum MouseButton { Left, Right, Middle }?
(optional)#デフォルトは
left
です。 -
Delay
[float]? (optional)#mousedown
とmouseup
の間の待機時間 (ミリ秒単位)。デフォルトは 0 です。 -
actionability チェックをバイパスするかどうか。デフォルトは
false
です。 -
Modifiers
IEnumerable?<enum KeyboardModifier { Alt, Control, ControlOrMeta, Meta, Shift }
> (optional)#押す修飾キー。操作中にこれらの修飾キーのみが押されていることを確認し、その後、現在の修飾キーを復元します。指定しない場合、現在押されている修飾キーが使用されます。"ControlOrMeta" は、Windows および Linux では "Control" に、macOS では "Meta" に解決されます。
-
非推奨
このオプションは効果がありません。
このオプションは効果がありません。
-
Position
Position? (optional)#-
X
[float] -
Y
[float]
要素のパディングボックスの左上隅を基準に使用するポイント。指定しない場合は、要素の可視ポイントを使用します。
-
-
Timeout
[float]? (optional)#最大待機時間 (ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.SetDefaultTimeout() または Page.SetDefaultTimeout() メソッドを使用して変更できます。 -
Trial
bool? (optional)v1.11 で追加#設定すると、このメソッドは actionability チェックのみを実行し、アクションをスキップします。デフォルトは
false
です。アクションを実行せずに要素がアクションの準備が整うまで待機するのに役立ちます。
-
戻り値
DispatchEventAsync
v1.9 より前に追加代わりに、locator ベースの Locator.DispatchEventAsync() を使用してください。locator の詳細をお読みください。
以下のスニペットは、要素に対して click
イベントをディスパッチします。要素の可視状態に関係なく、click
がディスパッチされます。これは、element.click() を呼び出すことと同等です。
使用例
await elementHandle.DispatchEventAsync("click");
内部的には、指定された type に基づいてイベントのインスタンスを作成し、eventInit プロパティで初期化し、要素にディスパッチします。イベントはデフォルトで composed
、cancelable
、および bubble です。
eventInit はイベント固有であるため、初期プロパティのリストについてはイベントドキュメントを参照してください。
- DeviceMotionEvent
- DeviceOrientationEvent
- DragEvent
- Event
- FocusEvent
- KeyboardEvent
- MouseEvent
- PointerEvent
- TouchEvent
- WheelEvent
ライブオブジェクトをイベントに渡したい場合は、JSHandle
をプロパティ値として指定することもできます。
var dataTransfer = await page.EvaluateHandleAsync("() => new DataTransfer()");
await elementHandle.DispatchEventAsync("dragstart", new Dictionary<string, object>
{
{ "dataTransfer", dataTransfer }
});
引数
-
DOM イベントタイプ:
"click"
、"dragstart"
など。 -
eventInit
EvaluationArgument? (optional)#オプションのイベント固有の初期化プロパティ。
戻り値
EvalOnSelectorAsync
v1.9 で追加このメソッドは、要素が actionability チェックに合格するのを待機しないため、不安定なテストにつながる可能性があります。代わりに、Locator.EvaluateAsync()、その他の Locator ヘルパーメソッド、または web-first アサーションを使用してください。
expression の戻り値を返します。
このメソッドは、ElementHandle
のサブツリー内で指定されたセレクターに一致する要素を見つけ、それを expression の最初の引数として渡します。セレクターに一致する要素がない場合、このメソッドはエラーをスローします。
expression が Promise を返す場合、ElementHandle.EvalOnSelectorAsync() は promise が解決されるのを待ってからその値を返します。
使用例
var tweetHandle = await page.QuerySelectorAsync(".tweet");
Assert.AreEqual("100", await tweetHandle.EvalOnSelectorAsync(".like", "node => node.innerText"));
Assert.AreEqual("10", await tweetHandle.EvalOnSelectorAsync(".retweets", "node => node.innerText"));
引数
-
クエリするセレクター。
-
ブラウザコンテキストで評価される JavaScript 式。式が関数に評価される場合、関数は自動的に呼び出されます。
-
arg
EvaluationArgument? (optional)#expression に渡すオプションの引数。
戻り値
- [object]#
EvalOnSelectorAllAsync
v1.9 で追加ほとんどの場合、Locator.EvaluateAllAsync()、その他の Locator ヘルパーメソッド、および web-first アサーションの方が優れています。
expression の戻り値を返します。
このメソッドは、ElementHandle
のサブツリー内で指定されたセレクターに一致するすべての要素を見つけ、一致した要素の配列を expression の最初の引数として渡します。
expression が Promise を返す場合、ElementHandle.EvalOnSelectorAllAsync() は promise が解決されるのを待ってからその値を返します。
使用例
<div class="feed">
<div class="tweet">Hello!</div>
<div class="tweet">Hi!</div>
</div>
var feedHandle = await page.QuerySelectorAsync(".feed");
Assert.AreEqual(new [] { "Hello!", "Hi!" }, await feedHandle.EvalOnSelectorAllAsync<string[]>(".tweet", "nodes => nodes.map(n => n.innerText)"));
引数
-
クエリするセレクター。
-
ブラウザコンテキストで評価される JavaScript 式。式が関数に評価される場合、関数は自動的に呼び出されます。
-
arg
EvaluationArgument? (optional)#expression に渡すオプションの引数。
戻り値
- [object]#
FillAsync
v1.9 より前に追加代わりに、locator ベースの Locator.FillAsync() を使用してください。locator の詳細をお読みください。
このメソッドは、actionability チェックを待機し、要素をフォーカスし、入力し、入力後に input
イベントをトリガーします。入力フィールドをクリアするために空の文字列を渡すことができることに注意してください。
ターゲット要素が <input>
、<textarea>
、または [contenteditable]
要素でない場合、このメソッドはエラーをスローします。ただし、要素が関連付けられた control を持つ <label>
要素内にある場合、代わりに control が入力されます。
きめ細かいキーボードイベントを送信するには、Locator.PressSequentiallyAsync() を使用してください。
使用例
await ElementHandle.FillAsync(value, options);
引数
-
<input>
、<textarea>
、または[contenteditable]
要素に設定する値。 -
options
ElementHandleFillOptions?
(optional)-
Force
bool? (optional)v1.13 で追加#actionability チェックをバイパスするかどうか。デフォルトは
false
です。 -
非推奨
このオプションは効果がありません。
このオプションは効果がありません。
-
Timeout
[float]? (optional)#最大待機時間 (ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.SetDefaultTimeout() または Page.SetDefaultTimeout() メソッドを使用して変更できます。
-
戻り値
FocusAsync
v1.9 より前に追加代わりに、locator ベースの Locator.FocusAsync() を使用してください。locator の詳細をお読みください。
要素に対して focus を呼び出します。
使用例
await ElementHandle.FocusAsync();
戻り値
GetAttributeAsync
v1.9 より前に追加代わりにロケーターベースの Locator.GetAttributeAsync() を使用してください。詳細については、ロケーターについてお読みください。
要素の属性値を返します。
使用例
await ElementHandle.GetAttributeAsync(name);
引数
戻り値
HoverAsync
v1.9 より前に追加代わりにロケーターベースの Locator.HoverAsync() を使用してください。詳細については、ロケーターについてお読みください。
このメソッドは、次の手順を実行して要素上にホバーします。
- Force オプションが設定されていない限り、要素のアクション可能性チェックを待機します。
- 必要に応じて、要素をビューにスクロールします。
- Page.Mouse を使用して、要素の中心、または指定された Position 上にホバーします。
アクション中に要素が DOM からデタッチされた場合、このメソッドは例外をスローします。
指定された Timeout 時間内にすべての手順が完了しなかった場合、このメソッドは TimeoutError をスローします。タイムアウトをゼロにすると、これは無効になります。
使用例
await ElementHandle.HoverAsync(options);
引数
options
ElementHandleHoverOptions?
(オプション)-
actionability チェックをバイパスするかどうか。デフォルトは
false
です。 -
Modifiers
IEnumerable?<enum KeyboardModifier { Alt, Control, ControlOrMeta, Meta, Shift }
> (オプション)#押す修飾キー。操作中にこれらの修飾キーのみが押されていることを確認し、その後、現在の修飾キーを復元します。指定しない場合、現在押されている修飾キーが使用されます。"ControlOrMeta" は、Windows および Linux では "Control" に、macOS では "Meta" に解決されます。
-
NoWaitAfter
bool? (オプション)バージョン 1.28 で追加#非推奨このオプションは効果がありません。
このオプションは効果がありません。
-
Position
Position? (オプション)#-
X
[float] -
Y
[float]
要素のパディングボックスの左上隅を基準に使用するポイント。指定しない場合は、要素の可視ポイントを使用します。
-
-
Timeout
[float]? (オプション)#最大待機時間 (ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.SetDefaultTimeout() または Page.SetDefaultTimeout() メソッドを使用して変更できます。 -
Trial
bool? (optional)v1.11 で追加#設定すると、このメソッドは actionability チェックのみを実行し、アクションをスキップします。デフォルトは
false
です。アクションを実行せずに要素がアクションの準備が整うまで待機するのに役立ちます。
-
戻り値
InnerHTMLAsync
v1.9 より前に追加代わりにロケーターベースの Locator.InnerHTMLAsync() を使用してください。詳細については、ロケーターについてお読みください。
element.innerHTML
を返します。
使用例
await ElementHandle.InnerHTMLAsync();
戻り値
InnerTextAsync
v1.9 より前に追加代わりにロケーターベースの Locator.InnerTextAsync() を使用してください。詳細については、ロケーターについてお読みください。
element.innerText
を返します。
使用例
await ElementHandle.InnerTextAsync();
戻り値
InputValueAsync
v1.13 で追加代わりにロケーターベースの Locator.InputValueAsync() を使用してください。詳細については、ロケーターについてお読みください。
選択された <input>
、<textarea>
、または <select>
要素の input.value
を返します。
入力要素以外の場合はエラーをスローします。ただし、要素が関連付けられた control を持つ <label>
要素内にある場合は、control の値を返します。
使用例
await ElementHandle.InputValueAsync(options);
引数
options
ElementHandleInputValueOptions?
(オプション)-
Timeout
[float]? (オプション)#最大待機時間 (ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.SetDefaultTimeout() または Page.SetDefaultTimeout() メソッドを使用して変更できます。
-
戻り値
IsCheckedAsync
v1.9 より前に追加代わりにロケーターベースの Locator.IsCheckedAsync() を使用してください。詳細については、ロケーターについてお読みください。
要素がチェックされているかどうかを返します。要素がチェックボックスまたはラジオ入力でない場合はエラーをスローします。
使用例
await ElementHandle.IsCheckedAsync();
戻り値
IsDisabledAsync
v1.9 より前に追加代わりにロケーターベースの Locator.IsDisabledAsync() を使用してください。詳細については、ロケーターについてお読みください。
要素が無効になっているかどうかを返します。これは有効の反対です。
使用例
await ElementHandle.IsDisabledAsync();
戻り値
IsEditableAsync
v1.9 より前に追加代わりにロケーターベースの Locator.IsEditableAsync() を使用してください。詳細については、ロケーターについてお読みください。
要素が編集可能かどうかを返します。
使用例
await ElementHandle.IsEditableAsync();
戻り値
IsEnabledAsync
v1.9 より前に追加代わりにロケーターベースの Locator.IsEnabledAsync() を使用してください。詳細については、ロケーターについてお読みください。
要素が有効になっているかどうかを返します。
使用例
await ElementHandle.IsEnabledAsync();
戻り値
IsHiddenAsync
v1.9 より前に追加代わりにロケーターベースの Locator.IsHiddenAsync() を使用してください。詳細については、ロケーターについてお読みください。
要素が非表示になっているかどうかを返します。これは可視の反対です。
使用例
await ElementHandle.IsHiddenAsync();
戻り値
IsVisibleAsync
v1.9 より前に追加代わりにロケーターベースの Locator.IsVisibleAsync() を使用してください。詳細については、ロケーターについてお読みください。
要素が可視かどうかを返します。
使用例
await ElementHandle.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
。
Shift
を押し続けると、key に対応するテキストが uppercase で入力されます。
key が単一の文字である場合、大文字と小文字が区別されるため、値 a
と A
はそれぞれ異なるテキストを生成します。
key: "Control+o"
、key: "Control++
、または key: "Control+Shift+T"
などのショートカットもサポートされています。修飾子を指定すると、後続のキーが押されている間、修飾子が押されたままになります。
使用例
await ElementHandle.PressAsync(key, options);
引数
-
押すキーの名前または生成する文字 (
ArrowLeft
やa
など)。 -
options
ElementHandlePressOptions?
(オプション)-
Delay
[float]? (オプション)#keydown
とkeyup
の間の待ち時間 (ミリ秒単位)。デフォルトは 0 です。 -
非推奨
このオプションは、将来
true
がデフォルトになります。ナビゲーションを開始するアクションは、これらのナビゲーションが発生し、ページが読み込みを開始するのを待機しています。このフラグを設定することで、待機をオプトアウトできます。このオプションが必要になるのは、アクセスできないページにナビゲーションする場合などの例外的なケースのみです。デフォルトは
false
です。 -
Timeout
[float]? (オプション)#最大待機時間 (ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.SetDefaultTimeout() または Page.SetDefaultTimeout() メソッドを使用して変更できます。
-
戻り値
QuerySelectorAsync
v1.9 で追加代わりにロケーターベースの Page.Locator() を使用してください。詳細については、ロケーターについてお読みください。
このメソッドは、ElementHandle
のサブツリーで指定されたセレクターに一致する要素を見つけます。セレクターに一致する要素がない場合、null
を返します。
使用例
await ElementHandle.QuerySelectorAsync(selector);
引数
戻り値
QuerySelectorAllAsync
v1.9 で追加代わりにロケーターベースの Page.Locator() を使用してください。詳細については、ロケーターについてお読みください。
このメソッドは、ElementHandle
のサブツリーで指定されたセレクターに一致するすべての要素を見つけます。セレクターに一致する要素がない場合、空の配列を返します。
使用例
await ElementHandle.QuerySelectorAllAsync(selector);
引数
戻り値
ScreenshotAsync
v1.9 より前に追加代わりにロケーターベースの Locator.ScreenshotAsync() を使用してください。詳細については、ロケーターについてお読みください。
このメソッドは、ページのスクリーンショットをキャプチャし、特定の要素のサイズと位置に合わせてクリップします。要素が他の要素で覆われている場合、スクリーンショットには実際には表示されません。要素がスクロール可能なコンテナである場合、現在スクロールされているコンテンツのみがスクリーンショットに表示されます。
このメソッドは、アクション可能性チェックを待機してから、スクリーンショットを撮る前に要素をビューにスクロールします。要素が DOM から切り離されている場合、メソッドはエラーをスローします。
キャプチャされたスクリーンショットを含むバッファを返します。
使用例
await ElementHandle.ScreenshotAsync(options);
引数
options
ElementHandleScreenshotOptions?
(オプション)-
Animations
enum ScreenshotAnimations { Disabled, Allow }?
(オプション)#"disabled"
に設定すると、CSS アニメーション、CSS トランジション、および Web Animations を停止します。アニメーションは、期間に応じて異なる扱いを受けます- 有限のアニメーションは完了まで早送りされるため、
transitionend
イベントが発生します。 - 無限のアニメーションは初期状態にキャンセルされ、スクリーンショット後に再生されます。
デフォルトは、アニメーションをそのままにする
"allow"
です。 - 有限のアニメーションは完了まで早送りされるため、
-
Caret
enum ScreenshotCaret { Hide, Initial }?
(オプション)#"hide"
に設定すると、スクリーンショットはテキストキャレットを非表示にします。"initial"
に設定すると、テキストキャレットの動作は変更されません。デフォルトは"hide"
です。 -
Mask
IEnumerable?<Locator> (オプション)#スクリーンショットを撮るときにマスクする必要があるロケーターを指定します。マスクされた要素は、ピンクのボックス
#FF00FF
(MaskColor でカスタマイズ) でオーバーレイされ、そのバウンディングボックスを完全に覆います。マスクは非表示の要素にも適用されます。これを無効にするには、「可視要素のみをマッチング」を参照してください。 -
MaskColor
string? (オプション)バージョン 1.35 で追加#マスクされた要素のオーバーレイボックスの色を、CSS カラー形式で指定します。デフォルトの色はピンク
#FF00FF
です。 -
デフォルトの白い背景を非表示にし、透明度のあるスクリーンショットをキャプチャできるようにします。
jpeg
画像には適用されません。デフォルトはfalse
です。 -
画像を保存するファイルパス。スクリーンショットのタイプは、ファイル拡張子から推測されます。Path が相対パスの場合、現在の作業ディレクトリからの相対パスとして解決されます。パスが指定されていない場合、画像はディスクに保存されません。
-
画像の品質 (0-100)。
png
画像には適用されません。 -
Scale
enum ScreenshotScale { Css, Device }?
(オプション)#"css"
に設定すると、スクリーンショットはページ上の CSS ピクセルごとに 1 ピクセルになります。高 DPI デバイスの場合、これによりスクリーンショットが小さく保たれます。"device"
オプションを使用すると、デバイスピクセルごとに 1 ピクセルが生成されるため、高 DPI デバイスのスクリーンショットは 2 倍以上大きくなります。デフォルトは
"device"
です。 -
Style
string? (オプション)バージョン 1.41 で追加#スクリーンショットを作成中に適用するスタイルシートのテキスト。これは、動的な要素を非表示にしたり、要素を非表示にしたり、プロパティを変更して、再現可能なスクリーンショットの作成に役立てることができる場所です。このスタイルシートは Shadow DOM を貫通し、内部フレームに適用されます。
-
Timeout
[float]? (オプション)#最大待機時間 (ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.SetDefaultTimeout() または Page.SetDefaultTimeout() メソッドを使用して変更できます。 -
Type
enum ScreenshotType { Png, Jpeg }?
(オプション)#スクリーンショットのタイプを指定します。デフォルトは
png
です。
-
戻り値
ScrollIntoViewIfNeededAsync
v1.9 より前に追加代わりにロケーターベースの Locator.ScrollIntoViewIfNeededAsync() を使用してください。詳細については、ロケーターについてお読みください。
このメソッドは、アクション可能性チェックを待機してから、IntersectionObserver の ratio
で定義されているように完全に可視でない限り、要素をビューにスクロールしようとします。
elementHandle
が Document または ShadowRoot に接続された要素を指していない場合、エラーをスローします。
スクロールの代替方法については、スクロールを参照してください。
使用例
await ElementHandle.ScrollIntoViewIfNeededAsync(options);
引数
options
ElementHandleScrollIntoViewIfNeededOptions?
(オプション)-
Timeout
[float]? (オプション)#最大待機時間 (ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.SetDefaultTimeout() または Page.SetDefaultTimeout() メソッドを使用して変更できます。
-
戻り値
SelectOptionAsync
v1.9 より前に追加代わりにロケーターベースの Locator.SelectOptionAsync() を使用してください。詳細については、ロケーターについてお読みください。
このメソッドは、アクション可能性チェックを待機し、指定されたすべてのオプションが <select>
要素に存在し、これらのオプションが選択されるまで待機します。
ターゲット要素が <select>
要素でない場合、このメソッドはエラーをスローします。ただし、要素が関連付けられた control を持つ <label>
要素内にある場合は、代わりに control が使用されます。
正常に選択されたオプション値の配列を返します。
指定されたすべてのオプションが選択されると、change
イベントと input
イベントをトリガーします。
使用例
// Single selection matching the value or label
await handle.SelectOptionAsync(new[] { "blue" });
// single selection matching the label
await handle.SelectOptionAsync(new[] { new SelectOptionValue() { Label = "blue" } });
// multiple selection
await handle.SelectOptionAsync(new[] { "red", "green", "blue" });
// multiple selection for blue, red and second option
await handle.SelectOptionAsync(new[] {
new SelectOptionValue() { Label = "blue" },
new SelectOptionValue() { Index = 2 },
new SelectOptionValue() { Value = "red" }});
引数
values
string | ElementHandle | IEnumerable |SelectOption
| IEnumerable | IEnumerable?#-
Value
string? (オプション)option.value
で一致します。オプション。 -
Label
string? (オプション)option.label
で一致します。オプション。 -
Index
int? (オプション)インデックスで一致します。オプション。
<select>
にmultiple
属性がある場合、一致するすべてのオプションが選択されます。それ以外の場合は、渡されたオプションのいずれかに一致する最初のオプションのみが選択されます。文字列値は、値とラベルの両方に一致します。指定されたすべてのプロパティが一致する場合、オプションは一致すると見なされます。-
options
ElementHandleSelectOptionOptions?
(オプション)-
Force
bool? (optional)v1.13 で追加#actionability チェックをバイパスするかどうか。デフォルトは
false
です。 -
非推奨
このオプションは効果がありません。
このオプションは効果がありません。
-
Timeout
[float]? (オプション)#最大待機時間 (ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.SetDefaultTimeout() または Page.SetDefaultTimeout() メソッドを使用して変更できます。
-
戻り値
SelectTextAsync
v1.9 より前に追加代わりにロケーターベースの Locator.SelectTextAsync() を使用してください。詳細については、ロケーターについてお読みください。
このメソッドは、アクション可能性チェックを待機してから、要素にフォーカスを当て、すべてのテキストコンテンツを選択します。
要素が関連付けられた control を持つ <label>
要素内にある場合は、代わりに control 内のテキストにフォーカスを当てて選択します。
使用例
await ElementHandle.SelectTextAsync(options);
引数
options
ElementHandleSelectTextOptions?
(オプション)-
Force
bool? (optional)v1.13 で追加#actionability チェックをバイパスするかどうか。デフォルトは
false
です。 -
Timeout
[float]? (オプション)#最大待機時間 (ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.SetDefaultTimeout() または Page.SetDefaultTimeout() メソッドを使用して変更できます。
-
戻り値
SetCheckedAsync
バージョン 1.15 で追加代わりにロケーターベースの Locator.SetCheckedAsync() を使用してください。詳細については、ロケーターについてお読みください。
このメソッドは、次の手順を実行して要素をチェックまたはチェック解除します。
- 要素がチェックボックスまたはラジオ入力であることを確認します。そうでない場合、このメソッドはエラーをスローします。
- 要素がすでに正しいチェック状態になっている場合、このメソッドはすぐに戻ります。
- Force オプションが設定されていない限り、一致する要素のアクション可能性チェックを待機します。チェック中に要素が切り離された場合、アクション全体が再試行されます。
- 必要に応じて、要素をビューにスクロールします。
- Page.Mouse を使用して、要素の中心をクリックします。
- 要素がチェックまたはチェック解除されたことを確認します。そうでない場合、このメソッドはエラーをスローします。
指定された Timeout 時間内にすべての手順が完了しなかった場合、このメソッドは TimeoutError をスローします。タイムアウトをゼロにすると、これは無効になります。
使用例
await ElementHandle.SetCheckedAsync(checked, options);
引数
-
チェックボックスをチェックまたはチェック解除するかどうか。
-
options
ElementHandleSetCheckedOptions?
(オプション)-
actionability チェックをバイパスするかどうか。デフォルトは
false
です。 -
非推奨
このオプションは効果がありません。
このオプションは効果がありません。
-
Position
Position? (オプション)#-
X
[float] -
Y
[float]
要素のパディングボックスの左上隅を基準に使用するポイント。指定しない場合は、要素の可視ポイントを使用します。
-
-
Timeout
[float]? (オプション)#最大待機時間 (ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.SetDefaultTimeout() または Page.SetDefaultTimeout() メソッドを使用して変更できます。 -
設定すると、このメソッドは actionability チェックのみを実行し、アクションをスキップします。デフォルトは
false
です。アクションを実行せずに要素がアクションの準備が整うまで待機するのに役立ちます。
-
戻り値
SetInputFilesAsync
v1.9 より前に追加代わりにロケーターベースの Locator.SetInputFilesAsync() を使用してください。詳細については、ロケーターについてお読みください。
ファイル入力の値をこれらのファイルパスまたはファイルに設定します。filePaths
の一部が相対パスの場合、現在の作業ディレクトリからの相対パスとして解決されます。空の配列の場合、選択されたファイルをクリアします。[webkitdirectory]
属性を持つ入力の場合、単一のディレクトリパスのみがサポートされます。
このメソッドは、ElementHandle が input 要素を指していることを想定しています。ただし、要素が関連付けられた control を持つ <label>
要素内にある場合は、代わりに control をターゲットにします。
使用例
await ElementHandle.SetInputFilesAsync(files, options);
引数
files
string | IEnumerable<string> |FilePayload
| IEnumerable<FilePayload
>#options
ElementHandleSetInputFilesOptions?
(オプション)-
非推奨
このオプションは効果がありません。
このオプションは効果がありません。
-
Timeout
[float]? (オプション)#最大待機時間 (ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.SetDefaultTimeout() または Page.SetDefaultTimeout() メソッドを使用して変更できます。
-
戻り値
TapAsync
v1.9 より前に追加代わりにロケーターベースの Locator.TapAsync() を使用してください。詳細については、ロケーターについてお読みください。
このメソッドは、次の手順を実行して要素をタップします。
- Force オプションが設定されていない限り、要素のアクション可能性チェックを待機します。
- 必要に応じて、要素をビューにスクロールします。
- Page.Touchscreen を使用して、要素の中心、または指定された Position をタップします。
アクション中に要素が DOM からデタッチされた場合、このメソッドは例外をスローします。
指定された Timeout 時間内にすべての手順が完了しなかった場合、このメソッドは TimeoutError をスローします。タイムアウトをゼロにすると、これは無効になります。
elementHandle.tap()
は、ブラウザコンテキストの hasTouch
オプションが true に設定されている必要があることを要求します。
使用例
await ElementHandle.TapAsync(options);
引数
options
ElementHandleTapOptions?
(オプション)-
actionability チェックをバイパスするかどうか。デフォルトは
false
です。 -
Modifiers
IEnumerable?<enum KeyboardModifier { Alt, Control, ControlOrMeta, Meta, Shift }
> (オプション)#押す修飾キー。操作中にこれらの修飾キーのみが押されていることを確認し、その後、現在の修飾キーを復元します。指定しない場合、現在押されている修飾キーが使用されます。"ControlOrMeta" は、Windows および Linux では "Control" に、macOS では "Meta" に解決されます。
-
非推奨
このオプションは効果がありません。
このオプションは効果がありません。
-
Position
Position? (オプション)#-
X
[float] -
Y
[float]
要素のパディングボックスの左上隅を基準に使用するポイント。指定しない場合は、要素の可視ポイントを使用します。
-
-
Timeout
[float]? (オプション)#最大待機時間 (ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.SetDefaultTimeout() または Page.SetDefaultTimeout() メソッドを使用して変更できます。 -
Trial
bool? (optional)v1.11 で追加#設定すると、このメソッドは actionability チェックのみを実行し、アクションをスキップします。デフォルトは
false
です。アクションを実行せずに要素がアクションの準備が整うまで待機するのに役立ちます。
-
戻り値
TextContentAsync
v1.9 より前に追加代わりにロケーターベースの Locator.TextContentAsync() を使用してください。ロケーターの詳細はこちらをご覧ください。
node.textContent
を返します。
使用例
await ElementHandle.TextContentAsync();
戻り値
TypeAsync
v1.9 より前に追加ほとんどの場合、代わりに Locator.FillAsync() を使用する必要があります。ページ上に特別なキーボード処理がある場合にのみ、キーを1つずつ押す必要があります。この場合は、Locator.PressSequentiallyAsync() を使用してください。
要素をフォーカスし、テキスト内の各文字に対して keydown
、keypress
/input
、keyup
イベントを送信します。
Control
や ArrowDown
などの特殊キーを押すには、ElementHandle.PressAsync() を使用してください。
使用例
引数
-
フォーカスされた要素に入力するテキスト。
-
options
ElementHandleTypeOptions?
(オプション)-
Delay
[float]? (オプション)#キー押下間の待機時間 (ミリ秒単位)。デフォルトは 0 です。
-
非推奨
このオプションは効果がありません。
このオプションは効果がありません。
-
Timeout
[float]? (オプション)#最大待機時間 (ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.SetDefaultTimeout() または Page.SetDefaultTimeout() メソッドを使用して変更できます。
-
戻り値
UncheckAsync
v1.9 より前に追加代わりにロケーターベースの Locator.UncheckAsync() を使用してください。ロケーターの詳細はこちらをご覧ください。
このメソッドは、次の手順を実行して要素をチェックします。
- 要素がチェックボックスまたはラジオ入力であることを確認します。そうでない場合、このメソッドは例外をスローします。要素がすでにチェックされていない場合、このメソッドはすぐに戻ります。
- Force オプションが設定されていない限り、要素の アクション可能性 チェックを待ちます。
- 必要に応じて、要素をビューにスクロールします。
- Page.Mouse を使用して、要素の中心をクリックします。
- 要素がチェックされていないことを確認します。そうでない場合、このメソッドは例外をスローします。
アクション中に要素が DOM からデタッチされた場合、このメソッドは例外をスローします。
指定された Timeout 時間内にすべてのステップが完了しなかった場合、このメソッドは TimeoutError をスローします。タイムアウトに 0 を渡すと、これは無効になります。
使用例
await ElementHandle.UncheckAsync(options);
引数
options
ElementHandleUncheckOptions?
(オプション)-
actionability チェックをバイパスするかどうか。デフォルトは
false
です。 -
非推奨
このオプションは効果がありません。
このオプションは効果がありません。
-
Position
Position? (optional)v1.11 で追加#-
X
[float] -
Y
[float]
要素のパディングボックスの左上隅を基準に使用するポイント。指定しない場合は、要素の可視ポイントを使用します。
-
-
Timeout
[float]? (オプション)#最大待機時間 (ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.SetDefaultTimeout() または Page.SetDefaultTimeout() メソッドを使用して変更できます。 -
Trial
bool? (optional)v1.11 で追加#設定すると、このメソッドは actionability チェックのみを実行し、アクションをスキップします。デフォルトは
false
です。アクションを実行せずに要素がアクションの準備が整うまで待機するのに役立ちます。
-
戻り値
WaitForSelectorAsync
v1.9 より前に追加代わりに、可視性をアサートするウェブアサーションまたはロケーターベースの Locator.WaitForAsync() を使用してください。
State オプションを満たすセレクターによって指定された要素を返します。hidden
または detached
を待機している場合は null
を返します。
selector が State オプション (DOM に表示/非表示になるか、可視/非表示になるかのいずれか) を満たすまで、要素ハンドルを基準にして待機します。メソッド呼び出しの時点で selector がすでに条件を満たしている場合、メソッドはすぐに戻ります。セレクターが Timeout ミリ秒間条件を満たさない場合、関数は例外をスローします。
使用例
await page.SetContentAsync("<div><span></span></div>");
var div = await page.QuerySelectorAsync("div");
// Waiting for the "span" selector relative to the div.
var span = await page.WaitForSelectorAsync("span", WaitForSelectorState.Attached);
このメソッドはナビゲーションをまたいでは機能しません。代わりに Page.WaitForSelectorAsync() を使用してください。
引数
-
クエリするセレクター。
-
options
ElementHandleWaitForSelectorOptions?
(オプション)-
State
enum WaitForSelectorState { Attached, Detached, Visible, Hidden }?
(オプション)#デフォルトは
'visible'
です。次のいずれかになります。'attached'
- 要素が DOM に存在するのを待ちます。'detached'
- 要素が DOM に存在しなくなるのを待ちます。'visible'
- 要素が空でないバウンディングボックスを持ち、visibility:hidden
でないのを待ちます。コンテンツがない要素やdisplay:none
の要素は空のバウンディングボックスを持ち、可視とはみなされないことに注意してください。'hidden'
- 要素が DOM からデタッチされるか、空のバウンディングボックスを持つか、visibility:hidden
になるのを待ちます。これは'visible'
オプションの反対です。
-
Strict
bool? (オプション)バージョン 1.15 で追加#true の場合、この呼び出しでは、セレクターが単一の要素に解決される必要があります。指定されたセレクターが複数の要素に解決される場合、呼び出しは例外をスローします。
-
Timeout
[float]? (オプション)#最大待機時間 (ミリ秒単位)。デフォルトは
30000
(30 秒) です。タイムアウトを無効にするには0
を渡します。デフォルト値は、BrowserContext.SetDefaultTimeout() または Page.SetDefaultTimeout() メソッドを使用して変更できます。
-
戻り値