ElementHandle
- 継承元: JSHandle
ElementHandle は、ページ内の DOM 要素を表します。ElementHandle は page.query_selector() メソッドで作成できます。
ElementHandle の使用は推奨されません。Locator オブジェクトと Web 優先の Assertion を代わりに使用してください。
- 同期
- 非同期
href_element = page.query_selector("a")
href_element.click()
href_element = await page.query_selector("a")
await href_element.click()
ElementHandle は、ハンドルが js_handle.dispose() で破棄されない限り、DOM 要素のガベージコレクションを防止します。ElementHandle は、元のフレームがナビゲートされると自動的に破棄されます。
ElementHandle インスタンスは、page.eval_on_selector() および page.evaluate() メソッドの引数として使用できます。
Locator と ElementHandle の違いは、ElementHandle が特定の要素を指すのに対し、Locator は要素の取得ロジックをキャプチャすることです。
以下の例では、ハンドルはページの特定の DOM 要素を指します。その要素のテキストが変更されたり、React によってまったく異なるコンポーネントがレンダリングされたりしても、ハンドルはその DOM 要素を指し続けます。これは予期しない動作につながる可能性があります。
- 同期
- 非同期
handle = page.query_selector("text=Submit")
handle.hover()
handle.click()
handle = await page.query_selector("text=Submit")
await handle.hover()
await handle.click()
ロケーターの場合、element
が使用されるたびに、セレクターを使用してページ内の最新の DOM 要素が検索されます。したがって、以下のスニペットでは、基になる DOM 要素が2回検索されます。
- 同期
- 非同期
locator = page.get_by_text("Submit")
locator.hover()
locator.click()
locator = page.get_by_text("Submit")
await locator.hover()
await locator.click()
メソッド
bounding_box
v1.9 以前に追加このメソッドは、要素のバウンディングボックスを返します。要素が非表示の場合は null
を返します。バウンディングボックスは、メインフレームのビューポート(通常はブラウザウィンドウと同じ)を基準に計算されます。
スクロールは、Element.getBoundingClientRect と同様に、返されるバウンディングボックスに影響を与えます。つまり、x
や y
が負になる場合があります。
子フレームの要素は、Element.getBoundingClientRect とは異なり、メインフレームを基準としたバウンディングボックスを返します。
ページが静的であると仮定すると、バウンディングボックスの座標を使用して入力を実行しても安全です。たとえば、以下のスニペットは要素の中心をクリックするはずです。
使用法
- 同期
- 非同期
box = element_handle.bounding_box()
page.mouse.click(box["x"] + box["width"] / 2, box["y"] + box["height"] / 2)
box = await element_handle.bounding_box()
await page.mouse.click(box["x"] + box["width"] / 2, box["y"] + box["height"] / 2)
戻り値
content_frame
v1.9 以前に追加iframe ノードを参照する要素ハンドルのコンテンツフレームを返します。それ以外の場合は null
を返します。
使用法
element_handle.content_frame()
戻り値
owner_frame
v1.9 以前に追加与えられた要素を含むフレームを返します。
使用法
element_handle.owner_frame()
戻り値
wait_for_element_state
v1.9 以前に追加要素が state を満たすまで待機し、満たした時点で戻ります。
state パラメータに応じて、このメソッドは actionability チェックのいずれかをパスするまで待機します。要素が待機中にデタッチされた場合、このメソッドは例外をスローします("hidden"
状態を待機している場合を除く)。
"visible"
要素が 表示されるまで待機します。"hidden"
要素が 表示されない、またはアタッチされていない状態になるまで待機します。非表示を待機する場合、要素がデタッチされても例外はスローされません。"stable"
要素が 表示されており、かつ 安定している状態になるまで待機します。"enabled"
要素が 有効になるまで待機します。"disabled"
要素が 無効になるまで待機します。"editable"
要素が 編集可能になるまで待機します。
要素が指定された timeout ミリ秒間条件を満たさない場合、このメソッドは例外をスローします。
使用法
element_handle.wait_for_element_state(state)
element_handle.wait_for_element_state(state, **kwargs)
引数
-
state
"visible" | "hidden" | "stable" | "enabled" | "disabled" | "editable"#待機する状態。詳細は以下を参照してください。
-
最大時間(ミリ秒)。デフォルトは
30000
(30秒)です。0
を渡すとタイムアウトが無効になります。デフォルト値は browser_context.set_default_timeout() または page.set_default_timeout() メソッドを使用して変更できます。
戻り値
非推奨
check
v1.9 以前に追加代わりにロケーターベースの locator.check() を使用してください。ロケーターについて詳しくはこちら。
このメソッドは、以下の手順を実行して要素をチェックします。
- 要素がチェックボックスまたはラジオ入力であることを確認します。そうでない場合、このメソッドは例外をスローします。要素がすでにチェックされている場合、このメソッドはすぐに戻ります。
- force オプションが設定されていない限り、要素に対する actionability チェックを待ちます。
- 必要に応じて、要素をビューポート内にスクロールします。
- page.mouse を使用して、要素の中心をクリックします。
- 要素が現在チェックされていることを確認します。そうでない場合、このメソッドは例外をスローします。
アクション中に要素が DOM からデタッチされた場合、このメソッドは例外をスローします。
すべての手順が指定された timeout 内に完了しなかった場合、このメソッドは TimeoutError をスローします。タイムアウトをゼロに設定すると、これを無効にできます。
使用法
element_handle.check()
element_handle.check(**kwargs)
引数
-
actionability チェックをバイパスするかどうか。デフォルトは
false
です。 -
no_wait_after
bool (optional)#非推奨このオプションは効果がありません。
このオプションは効果がありません。
-
position
Dict (optional)追加: v1.11#要素のパディングボックスの左上隅を基準に使用する点。指定されていない場合、要素の何らかの可視点を使用します。
-
最大時間(ミリ秒)。デフォルトは
30000
(30秒)です。0
を渡すとタイムアウトが無効になります。デフォルト値は browser_context.set_default_timeout() または page.set_default_timeout() メソッドを使用して変更できます。 -
trial
bool (optional)追加: v1.11#設定されている場合、このメソッドは actionability チェックのみを実行し、アクションはスキップします。デフォルトは
false
です。アクションを実行せずに要素がアクションの準備ができるまで待機する場合に役立ちます。
戻り値
click
v1.9 以前に追加代わりにロケーターベースの locator.click() を使用してください。ロケーターについて詳しくはこちら。
このメソッドは、以下の手順を実行して要素をクリックします。
- force オプションが設定されていない限り、要素に対する actionability チェックを待ちます。
- 必要に応じて、要素をビューポート内にスクロールします。
- page.mouse を使用して、要素の中心、または指定された position をクリックします。
- no_wait_after オプションが設定されていない限り、開始されたナビゲーションが成功または失敗するまで待機します。
アクション中に要素が DOM からデタッチされた場合、このメソッドは例外をスローします。
すべての手順が指定された timeout 内に完了しなかった場合、このメソッドは TimeoutError をスローします。タイムアウトをゼロに設定すると、これを無効にできます。
使用法
element_handle.click()
element_handle.click(**kwargs)
引数
-
button
"left" | "right" | "middle" (optional)#デフォルトは
left
です。 -
デフォルトは 1 です。UIEvent.detail を参照してください。
-
mousedown
とmouseup
の間の待機時間(ミリ秒)。デフォルトは 0 です。 -
actionability チェックをバイパスするかどうか。デフォルトは
false
です。 -
modifiers
List["Alt" | "Control" | "ControlOrMeta" | "Meta" | "Shift"] (optional)#押す修飾キー。操作中にこれらの修飾キーのみが押され、その後に現在の修飾キーが復元されることを保証します。指定されていない場合、現在押されている修飾キーが使用されます。「ControlOrMeta」は、WindowsとLinuxでは「Control」に、macOSでは「Meta」に解決されます。
-
no_wait_after
bool (optional)#非推奨このオプションは将来
true
がデフォルトになります。ナビゲーションを開始するアクションは、これらのナビゲーションが発生し、ページのロードが開始されるのを待ちます。このフラグを設定することで、待機をオプトアウトできます。このオプションは、アクセスできないページにナビゲートするなどの例外的なケースでのみ必要になります。デフォルトは
false
です。 -
要素のパディングボックスの左上隅を基準に使用する点。指定されていない場合、要素の何らかの可視点を使用します。
-
最大時間(ミリ秒)。デフォルトは
30000
(30秒)です。0
を渡すとタイムアウトが無効になります。デフォルト値は browser_context.set_default_timeout() または page.set_default_timeout() メソッドを使用して変更できます。 -
trial
bool (optional)追加: v1.11#設定されている場合、このメソッドは actionability チェックのみを実行し、アクションはスキップします。デフォルトは
false
です。アクションを実行せずに要素がアクションの準備ができるまで待機する場合に役立ちます。
戻り値
dblclick
v1.9 以前に追加代わりにロケーターベースの locator.dblclick() を使用してください。ロケーターについて詳しくはこちら。
このメソッドは、以下の手順を実行して要素をダブルクリックします。
- force オプションが設定されていない限り、要素に対する actionability チェックを待ちます。
- 必要に応じて、要素をビューポート内にスクロールします。
- page.mouse を使用して、要素の中心、または指定された position をダブルクリックします。
アクション中に要素が DOM からデタッチされた場合、このメソッドは例外をスローします。
すべての手順が指定された timeout 内に完了しなかった場合、このメソッドは TimeoutError をスローします。タイムアウトをゼロに設定すると、これを無効にできます。
elementHandle.dblclick()
は2つの click
イベントと1つの dblclick
イベントをディスパッチします。
使用法
element_handle.dblclick()
element_handle.dblclick(**kwargs)
引数
-
button
"left" | "right" | "middle" (optional)#デフォルトは
left
です。 -
mousedown
とmouseup
の間の待機時間(ミリ秒)。デフォルトは 0 です。 -
actionability チェックをバイパスするかどうか。デフォルトは
false
です。 -
modifiers
List["Alt" | "Control" | "ControlOrMeta" | "Meta" | "Shift"] (optional)#押す修飾キー。操作中にこれらの修飾キーのみが押され、その後に現在の修飾キーが復元されることを保証します。指定されていない場合、現在押されている修飾キーが使用されます。「ControlOrMeta」は、WindowsとLinuxでは「Control」に、macOSでは「Meta」に解決されます。
-
no_wait_after
bool (optional)#非推奨このオプションは効果がありません。
このオプションは効果がありません。
-
要素のパディングボックスの左上隅を基準に使用する点。指定されていない場合、要素の何らかの可視点を使用します。
-
最大時間(ミリ秒)。デフォルトは
30000
(30秒)です。0
を渡すとタイムアウトが無効になります。デフォルト値は browser_context.set_default_timeout() または page.set_default_timeout() メソッドを使用して変更できます。 -
trial
bool (optional)追加: v1.11#設定されている場合、このメソッドは actionability チェックのみを実行し、アクションはスキップします。デフォルトは
false
です。アクションを実行せずに要素がアクションの準備ができるまで待機する場合に役立ちます。
戻り値
dispatch_event
v1.9 以前に追加代わりにロケーターベースの locator.dispatch_event() を使用してください。ロケーターについて詳しくはこちら。
以下のスニペットは、要素に対して click
イベントをディスパッチします。要素の表示状態に関わらず、click
イベントがディスパッチされます。これは element.click() を呼び出すことと等価です。
使用法
- 同期
- 非同期
element_handle.dispatch_event("click")
await element_handle.dispatch_event("click")
内部では、指定された type に基づいてイベントのインスタンスを作成し、event_init プロパティで初期化し、要素に対してディスパッチします。イベントはデフォルトで composed
、cancelable
、バブルします。
event_init はイベント固有であるため、初期プロパティのリストについてはイベントのドキュメントを参照してください
- DeviceMotionEvent
- DeviceOrientationEvent
- DragEvent
- Event
- FocusEvent
- KeyboardEvent
- MouseEvent
- PointerEvent
- TouchEvent
- WheelEvent
ライブオブジェクトをイベントに渡したい場合は、JSHandle
をプロパティ値として指定することもできます
- 同期
- 非同期
# note you can only create data_transfer in chromium and firefox
data_transfer = page.evaluate_handle("new DataTransfer()")
element_handle.dispatch_event("#source", "dragstart", {"dataTransfer": data_transfer})
# note you can only create data_transfer in chromium and firefox
data_transfer = await page.evaluate_handle("new DataTransfer()")
await element_handle.dispatch_event("#source", "dragstart", {"dataTransfer": data_transfer})
引数
-
DOM イベントのタイプ:
"click"
、"dragstart"
など。 -
event_init
EvaluationArgument (optional)#オプションのイベント固有の初期化プロパティ。
戻り値
eval_on_selector
追加: v1.9このメソッドは、要素が actionability チェックをパスするのを待たないため、不安定なテストにつながる可能性があります。代わりに locator.evaluate()、その他の Locator ヘルパーメソッド、または Web 優先の Assertion を使用してください。
expression の戻り値を返します。
このメソッドは、ElementHandle
のサブツリー内で指定されたセレクターに一致する要素を見つけ、それを expression の最初の引数として渡します。セレクターに一致する要素がない場合、このメソッドはエラーをスローします。
expression が Promise を返す場合、element_handle.eval_on_selector() はその Promise が解決されるのを待ち、その値を返します。
使用法
- 同期
- 非同期
tweet_handle = page.query_selector(".tweet")
assert tweet_handle.eval_on_selector(".like", "node => node.innerText") == "100"
assert tweet_handle.eval_on_selector(".retweets", "node => node.innerText") == "10"
tweet_handle = await page.query_selector(".tweet")
assert await tweet_handle.eval_on_selector(".like", "node => node.innerText") == "100"
assert await tweet_handle.eval_on_selector(".retweets", "node => node.innerText") == "10"
引数
-
クエリ対象のセレクター。
-
ブラウザコンテキストで評価される JavaScript 式。式が関数に評価される場合、関数は自動的に呼び出されます。
-
arg
EvaluationArgument (optional)#expression に渡すオプションの引数。
戻り値
eval_on_selector_all
追加: v1.9ほとんどの場合、locator.evaluate_all()、その他の Locator ヘルパーメソッド、および Web 優先の Assertion の方が優れています。
expression の戻り値を返します。
このメソッドは、ElementHandle
のサブツリー内で指定されたセレクターに一致するすべての要素を見つけ、一致した要素の配列を expression の最初の引数として渡します。
expression が Promise を返す場合、element_handle.eval_on_selector_all() はその Promise が解決されるのを待ち、その値を返します。
使用法
<div class="feed">
<div class="tweet">Hello!</div>
<div class="tweet">Hi!</div>
</div>
- 同期
- 非同期
feed_handle = page.query_selector(".feed")
assert feed_handle.eval_on_selector_all(".tweet", "nodes => nodes.map(n => n.innerText)") == ["hello!", "hi!"]
feed_handle = await page.query_selector(".feed")
assert await feed_handle.eval_on_selector_all(".tweet", "nodes => nodes.map(n => n.innerText)") == ["hello!", "hi!"]
引数
-
クエリ対象のセレクター。
-
ブラウザコンテキストで評価される JavaScript 式。式が関数に評価される場合、関数は自動的に呼び出されます。
-
arg
EvaluationArgument (optional)#expression に渡すオプションの引数。
戻り値
fill
v1.9 以前に追加代わりにロケーターベースの locator.fill() を使用してください。ロケーターについて詳しくはこちら。
このメソッドは、actionability チェックを待ち、要素にフォーカスし、入力してから、入力後に input
イベントをトリガーします。入力フィールドをクリアするために空の文字列を渡すことができる点に注意してください。
ターゲット要素が <input>
、<textarea>
、または [contenteditable]
要素でない場合、このメソッドはエラーをスローします。ただし、要素が関連付けられた コントロール を持つ <label>
要素内にある場合、代わりにそのコントロールが入力されます。
詳細なキーボードイベントを送信するには、locator.press_sequentially() を使用してください。
使用法
element_handle.fill(value)
element_handle.fill(value, **kwargs)
引数
-
<input>
、<textarea>
、または[contenteditable]
要素に設定する値。 -
force
bool (optional)追加: v1.13#actionability チェックをバイパスするかどうか。デフォルトは
false
です。 -
no_wait_after
bool (optional)#非推奨このオプションは効果がありません。
このオプションは効果がありません。
-
最大時間(ミリ秒)。デフォルトは
30000
(30秒)です。0
を渡すとタイムアウトが無効になります。デフォルト値は browser_context.set_default_timeout() または page.set_default_timeout() メソッドを使用して変更できます。
戻り値
focus
v1.9 以前に追加代わりにロケーターベースの locator.focus() を使用してください。ロケーターについて詳しくはこちら。
要素に対して focus を呼び出します。
使用法
element_handle.focus()
戻り値
get_attribute
v1.9 以前に追加代わりにロケーターベースの locator.get_attribute() を使用してください。ロケーターについて詳しくはこちら。
要素の属性値を返します。
使用法
element_handle.get_attribute(name)
引数
戻り値
hover
v1.9 以前に追加代わりにロケーターベースの locator.hover() を使用してください。ロケーターについて詳しくはこちら。
このメソッドは、以下の手順を実行して要素にホバーします。
- force オプションが設定されていない限り、要素に対する actionability チェックを待ちます。
- 必要に応じて、要素をビューポート内にスクロールします。
- page.mouse を使用して、要素の中心、または指定された position にホバーします。
アクション中に要素が DOM からデタッチされた場合、このメソッドは例外をスローします。
すべての手順が指定された timeout 内に完了しなかった場合、このメソッドは TimeoutError をスローします。タイムアウトをゼロに設定すると、これを無効にできます。
使用法
element_handle.hover()
element_handle.hover(**kwargs)
引数
-
actionability チェックをバイパスするかどうか。デフォルトは
false
です。 -
modifiers
List["Alt" | "Control" | "ControlOrMeta" | "Meta" | "Shift"] (optional)#押す修飾キー。操作中にこれらの修飾キーのみが押され、その後に現在の修飾キーが復元されることを保証します。指定されていない場合、現在押されている修飾キーが使用されます。「ControlOrMeta」は、WindowsとLinuxでは「Control」に、macOSでは「Meta」に解決されます。
-
no_wait_after
bool (optional)追加: v1.28#非推奨このオプションは効果がありません。
このオプションは効果がありません。
-
要素のパディングボックスの左上隅を基準に使用する点。指定されていない場合、要素の何らかの可視点を使用します。
-
最大時間(ミリ秒)。デフォルトは
30000
(30秒)です。0
を渡すとタイムアウトが無効になります。デフォルト値は browser_context.set_default_timeout() または page.set_default_timeout() メソッドを使用して変更できます。 -
trial
bool (optional)追加: v1.11#設定されている場合、このメソッドは actionability チェックのみを実行し、アクションはスキップします。デフォルトは
false
です。アクションを実行せずに要素がアクションの準備ができるまで待機する場合に役立ちます。
戻り値
inner_html
v1.9 以前に追加代わりにロケーターベースの locator.inner_html() を使用してください。ロケーターについて詳しくはこちら。
element.innerHTML
を返します。
使用法
element_handle.inner_html()
戻り値
inner_text
v1.9 以前に追加代わりにロケーターベースの locator.inner_text() を使用してください。ロケーターについて詳しくはこちら。
element.innerText
を返します。
使用法
element_handle.inner_text()
戻り値
input_value
追加: v1.13代わりにロケーターベースの locator.input_value() を使用してください。ロケーターについて詳しくはこちら。
選択された <input>
、<textarea>
、または <select>
要素の input.value
を返します。
非入力要素の場合、例外をスローします。ただし、要素が関連付けられた コントロール を持つ <label>
要素内にある場合、コントロールの値を返します。
使用法
element_handle.input_value()
element_handle.input_value(**kwargs)
引数
-
最大時間(ミリ秒)。デフォルトは
30000
(30秒)です。0
を渡すとタイムアウトが無効になります。デフォルト値は browser_context.set_default_timeout() または page.set_default_timeout() メソッドを使用して変更できます。
戻り値
is_checked
v1.9 以前に追加代わりにロケーターベースの locator.is_checked() を使用してください。ロケーターについて詳しくはこちら。
要素がチェックされているかどうかを返します。要素がチェックボックスまたはラジオ入力でない場合、例外をスローします。
使用法
element_handle.is_checked()
戻り値
is_disabled
v1.9 以前に追加代わりにロケーターベースの locator.is_disabled() を使用してください。ロケーターについて詳しくはこちら。
要素が「無効」であるかどうかを返します。有効の反対です。
使用法
element_handle.is_disabled()
戻り値
is_editable
v1.9 以前に追加代わりにロケーターベースの locator.is_editable() を使用してください。ロケーターについて詳しくはこちら。
要素が 編集可能であるかどうかを返します。
使用法
element_handle.is_editable()
戻り値
is_enabled
v1.9 以前に追加代わりにロケーターベースの locator.is_enabled() を使用してください。ロケーターについて詳しくはこちら。
要素が 有効であるかどうかを返します。
使用法
element_handle.is_enabled()
戻り値
is_hidden
v1.9 以前に追加代わりにロケーターベースの locator.is_hidden() を使用してください。ロケーターについて詳しくはこちら。
要素が「非表示」であるかどうかを返します。表示の反対です。
使用法
element_handle.is_hidden()
戻り値
is_visible
v1.9 以前に追加代わりにロケーターベースの locator.is_visible() を使用してください。ロケーターについて詳しくはこちら。
要素が 表示可能であるかどうかを返します。
使用法
element_handle.is_visible()
戻り値
press
v1.9 以前に追加代わりにロケーターベースの locator.press() を使用してください。ロケーターについて詳しくはこちら。
要素にフォーカスし、keyboard.down() と keyboard.up() を使用します。
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 に対応するテキストが大文字で入力されます。
key が単一の文字の場合、大文字と小文字を区別します。したがって、a
と A
の値はそれぞれ異なるテキストを生成します。
key: "Control+o"
、key: "Control++
、key: "Control+Shift+T"
などのショートカットもサポートされています。修飾子とともに指定された場合、修飾子が押されたまま、後続のキーが押されます。
使用法
element_handle.press(key)
element_handle.press(key, **kwargs)
引数
-
押すキーの名前、または生成する文字 (例:
ArrowLeft
、a
)。 -
keydown
とkeyup
の間の待機時間(ミリ秒)。デフォルトは 0 です。 -
no_wait_after
bool (optional)#非推奨このオプションは将来
true
がデフォルトになります。ナビゲーションを開始するアクションは、これらのナビゲーションが発生し、ページのロードが開始されるのを待ちます。このフラグを設定することで、待機をオプトアウトできます。このオプションは、アクセスできないページにナビゲートするなどの例外的なケースでのみ必要になります。デフォルトは
false
です。 -
最大時間(ミリ秒)。デフォルトは
30000
(30秒)です。0
を渡すとタイムアウトが無効になります。デフォルト値は browser_context.set_default_timeout() または page.set_default_timeout() メソッドを使用して変更できます。
戻り値
query_selector
追加: v1.9代わりにロケーターベースの page.locator() を使用してください。ロケーターについて詳しくはこちら。
このメソッドは、ElementHandle
のサブツリー内で指定されたセレクターに一致する要素を見つけます。セレクターに一致する要素がない場合、null
を返します。
使用法
element_handle.query_selector(selector)
引数
戻り値
query_selector_all
追加: v1.9代わりにロケーターベースの page.locator() を使用してください。ロケーターについて詳しくはこちら。
このメソッドは、ElementHandle
のサブツリー内で指定されたセレクターに一致するすべての要素を見つけます。セレクターに一致する要素がない場合、空の配列を返します。
使用法
element_handle.query_selector_all(selector)
引数
戻り値
screenshot
v1.9 以前に追加代わりにロケーターベースの locator.screenshot() を使用してください。ロケーターについて詳しくはこちら。
このメソッドはページのスクリーンショットをキャプチャし、この特定の要素のサイズと位置にクリップします。要素が他の要素に覆われている場合、スクリーンショットには実際には表示されません。要素がスクロール可能なコンテナである場合、スクリーンショットには現在スクロールされているコンテンツのみが表示されます。
このメソッドは actionability チェックを待ち、スクリーンショットを撮る前に要素をビューポート内にスクロールします。要素が DOM からデタッチされた場合、このメソッドはエラーをスローします。
キャプチャされたスクリーンショットのバッファを返します。
使用法
element_handle.screenshot()
element_handle.screenshot(**kwargs)
引数
-
animations
"disabled" | "allow" (optional)#"disabled"
に設定すると、CSS アニメーション、CSS トランジション、Web アニメーションが停止します。アニメーションは継続時間に応じて異なる処理を受けます- 有限のアニメーションは完了まで早送りされ、
transitionend
イベントが発火します。 - 無限のアニメーションは初期状態にキャンセルされ、スクリーンショットの後に再生されます。
デフォルトは
"allow"
で、アニメーションは変更されません。 - 有限のアニメーションは完了まで早送りされ、
-
caret
"hide" | "initial" (optional)#"hide"
に設定すると、スクリーンショットはテキストカーソルを非表示にします。"initial"
に設定すると、テキストカーソルの動作は変更されません。デフォルトは"hide"
です。 -
mask
List[Locator] (optional)#スクリーンショット撮影時にマスクされるロケーターを指定します。マスクされた要素は、そのバウンディングボックスを完全に覆うピンク色のボックス
#FF00FF
(mask_color でカスタマイズ可能)で重ねられます。マスクは非表示の要素にも適用されます。可視要素のみのマッチングを参照して、それを無効にすることができます。 -
mask_color
str (optional)追加: v1.35#マスクされた要素のオーバーレイボックスの色を CSS カラー形式で指定します。デフォルトの色はピンクの
#FF00FF
です。 -
omit_background
bool (optional)#デフォルトの白い背景を非表示にし、透明なスクリーンショットをキャプチャできるようにします。
jpeg
画像には適用されません。デフォルトはfalse
です。 -
path
Union[str, pathlib.Path] (optional)#画像を保存するファイルパス。スクリーンショットのタイプはファイル拡張子から推測されます。path が相対パスの場合、現在の作業ディレクトリを基準に解決されます。パスが指定されていない場合、画像はディスクに保存されません。
-
画像の品質(0~100)。
png
画像には適用されません。 -
scale
"css" | "device" (optional)#"css"
に設定すると、スクリーンショットはページ上の各 CSS ピクセルごとに1つのピクセルを持ちます。高DPIデバイスの場合、これによりスクリーンショットが小さく保たれます。"device"
オプションを使用すると、各デバイスピクセルごとに1つのピクセルが生成されるため、高DPIデバイスのスクリーンショットは2倍以上大きくなります。デフォルトは
"device"
です。 -
style
str (optional)追加: v1.41#スクリーンショット作成時に適用するスタイルシートのテキスト。ここで動的な要素を非表示にしたり、要素を非可視にしたり、そのプロパティを変更したりして、再現可能なスクリーンショットを作成するのに役立ちます。このスタイルシートは Shadow DOM を貫通し、内部フレームにも適用されます。
-
最大時間(ミリ秒)。デフォルトは
30000
(30秒)です。0
を渡すとタイムアウトが無効になります。デフォルト値は browser_context.set_default_timeout() または page.set_default_timeout() メソッドを使用して変更できます。 -
type
"png" | "jpeg" (optional)#スクリーンショットのタイプを指定します。デフォルトは
png
です。
戻り値
scroll_into_view_if_needed
v1.9 以前に追加代わりにロケーターベースの locator.scroll_into_view_if_needed() を使用してください。ロケーターについて詳しくはこちら。
このメソッドは actionability チェックを待ち、IntersectionObserver の ratio
で定義されているように完全に表示されている場合を除き、要素をビューポート内にスクロールしようとします。
elementHandle
が Document または ShadowRoot に 接続されていない 要素を指している場合、例外をスローします。
別のスクロール方法については スクロール を参照してください。
使用法
element_handle.scroll_into_view_if_needed()
element_handle.scroll_into_view_if_needed(**kwargs)
引数
-
最大時間(ミリ秒)。デフォルトは
30000
(30秒)です。0
を渡すとタイムアウトが無効になります。デフォルト値は browser_context.set_default_timeout() または page.set_default_timeout() メソッドを使用して変更できます。
戻り値
select_option
v1.9 以前に追加代わりにロケーターベースの locator.select_option() を使用してください。ロケーターについて詳しくはこちら。
このメソッドは、actionability チェックを待ち、指定されたすべてのオプションが <select>
要素内に存在するまで待機し、これらのオプションを選択します。
ターゲット要素が <select>
要素でない場合、このメソッドはエラーをスローします。ただし、要素が関連付けられた コントロール を持つ <label>
要素内にある場合、代わりにそのコントロールが使用されます。
正常に選択されたオプション値の配列を返します。
提供されたすべてのオプションが選択されると、change
および input
イベントをトリガーします。
使用法
- 同期
- 非同期
# Single selection matching the value or label
handle.select_option("blue")
# single selection matching both the label
handle.select_option(label="blue")
# multiple selection
handle.select_option(value=["red", "green", "blue"])
# Single selection matching the value or label
await handle.select_option("blue")
# single selection matching the label
await handle.select_option(label="blue")
# multiple selection
await handle.select_option(value=["red", "green", "blue"])
引数
-
force
bool (optional)追加: v1.13#actionability チェックをバイパスするかどうか。デフォルトは
false
です。 -
no_wait_after
bool (optional)#非推奨このオプションは効果がありません。
このオプションは効果がありません。
-
最大時間(ミリ秒)。デフォルトは
30000
(30秒)です。0
を渡すとタイムアウトが無効になります。デフォルト値は browser_context.set_default_timeout() または page.set_default_timeout() メソッドを使用して変更できます。 -
element
ElementHandle | List[ElementHandle] (optional)#選択するオプション要素。オプション。
-
index
int | List[int] (optional)#インデックスで選択するオプション。オプション。
-
value
str | List[str] (optional)#値で選択するオプション。
<select>
にmultiple
属性がある場合、指定されたすべてのオプションが選択されます。それ以外の場合、渡されたオプションのいずれかに一致する最初のオプションのみが選択されます。オプション。 -
label
str | List[str] (optional)#ラベルで選択するオプション。
<select>
にmultiple
属性がある場合、指定されたすべてのオプションが選択されます。それ以外の場合、渡されたオプションのいずれかに一致する最初のオプションのみが選択されます。オプション。
戻り値
select_text
v1.9 以前に追加代わりにロケーターベースの locator.select_text() を使用してください。ロケーターについて詳しくはこちら。
このメソッドは actionability チェックを待ち、要素にフォーカスし、そのすべてのテキストコンテンツを選択します。
要素が関連付けられた コントロール を持つ <label>
要素内にある場合、代わりにコントロールにフォーカスし、テキストを選択します。
使用法
element_handle.select_text()
element_handle.select_text(**kwargs)
引数
-
force
bool (optional)追加: v1.13#actionability チェックをバイパスするかどうか。デフォルトは
false
です。 -
最大時間(ミリ秒)。デフォルトは
30000
(30秒)です。0
を渡すとタイムアウトが無効になります。デフォルト値は browser_context.set_default_timeout() または page.set_default_timeout() メソッドを使用して変更できます。
戻り値
set_checked
追加: v1.15代わりにロケーターベースの locator.set_checked() を使用してください。ロケーターについて詳しくはこちら。
このメソッドは、以下の手順を実行して要素をチェックまたはアンチェックします。
- 要素がチェックボックスまたはラジオ入力であることを確認します。そうでない場合、このメソッドは例外をスローします。
- 要素がすでに適切なチェック状態である場合、このメソッドはすぐに戻ります。
- force オプションが設定されていない限り、一致する要素に対する actionability チェックを待ちます。チェック中に要素がデタッチされた場合、アクション全体が再試行されます。
- 必要に応じて、要素をビューポート内にスクロールします。
- page.mouse を使用して、要素の中心をクリックします。
- 要素が現在チェックされているか、またはチェックされていないことを確認します。そうでない場合、このメソッドは例外をスローします。
すべての手順が指定された timeout 内に完了しなかった場合、このメソッドは TimeoutError をスローします。タイムアウトをゼロに設定すると、これを無効にできます。
使用法
element_handle.set_checked(checked)
element_handle.set_checked(checked, **kwargs)
引数
-
チェックボックスをチェックするか、またはチェックを外すか。
-
actionability チェックをバイパスするかどうか。デフォルトは
false
です。 -
no_wait_after
bool (optional)#非推奨このオプションは効果がありません。
このオプションは効果がありません。
-
要素のパディングボックスの左上隅を基準に使用する点。指定されていない場合、要素の何らかの可視点を使用します。
-
最大時間(ミリ秒)。デフォルトは
30000
(30秒)です。0
を渡すとタイムアウトが無効になります。デフォルト値は browser_context.set_default_timeout() または page.set_default_timeout() メソッドを使用して変更できます。 -
設定されている場合、このメソッドは actionability チェックのみを実行し、アクションはスキップします。デフォルトは
false
です。アクションを実行せずに要素がアクションの準備ができるまで待機する場合に役立ちます。
戻り値
set_input_files
v1.9 以前に追加代わりにロケーターベースの locator.set_input_files() を使用してください。ロケーターについて詳しくはこちら。
ファイル入力の値をこれらのファイルパスまたはファイルに設定します。filePaths
の一部が相対パスである場合、それらは現在の作業ディレクトリを基準に解決されます。空の配列の場合、選択されたファイルをクリアします。[webkitdirectory]
属性を持つ入力の場合、単一のディレクトリパスのみがサポートされます。
このメソッドは、ElementHandle が input 要素を指すことを期待します。ただし、要素が関連付けられた コントロール を持つ <label>
要素内にある場合、代わりにコントロールをターゲットとします。
使用法
element_handle.set_input_files(files)
element_handle.set_input_files(files, **kwargs)
引数
-
files
Union[str, pathlib.Path] | List[Union[str, pathlib.Path]] | Dict | List[Dict]# -
no_wait_after
bool (optional)#非推奨このオプションは効果がありません。
このオプションは効果がありません。
-
最大時間(ミリ秒)。デフォルトは
30000
(30秒)です。0
を渡すとタイムアウトが無効になります。デフォルト値は browser_context.set_default_timeout() または page.set_default_timeout() メソッドを使用して変更できます。
戻り値
tap
v1.9 以前に追加代わりにロケーターベースの locator.tap() を使用してください。ロケーターについて詳しくはこちら。
このメソッドは、以下の手順を実行して要素をタップします。
- force オプションが設定されていない限り、要素に対する actionability チェックを待ちます。
- 必要に応じて、要素をビューポート内にスクロールします。
- page.touchscreen を使用して、要素の中心、または指定された position をタップします。
アクション中に要素が DOM からデタッチされた場合、このメソッドは例外をスローします。
すべての手順が指定された timeout 内に完了しなかった場合、このメソッドは TimeoutError をスローします。タイムアウトをゼロに設定すると、これを無効にできます。
elementHandle.tap()
を使用するには、ブラウザコンテキストの hasTouch
オプションを true に設定する必要があります。
使用法
element_handle.tap()
element_handle.tap(**kwargs)
引数
-
actionability チェックをバイパスするかどうか。デフォルトは
false
です。 -
modifiers
List["Alt" | "Control" | "ControlOrMeta" | "Meta" | "Shift"] (optional)#押す修飾キー。操作中にこれらの修飾キーのみが押され、その後に現在の修飾キーが復元されることを保証します。指定されていない場合、現在押されている修飾キーが使用されます。「ControlOrMeta」は、WindowsとLinuxでは「Control」に、macOSでは「Meta」に解決されます。
-
no_wait_after
bool (optional)#非推奨このオプションは効果がありません。
このオプションは効果がありません。
-
要素のパディングボックスの左上隅を基準に使用する点。指定されていない場合、要素の何らかの可視点を使用します。
-
最大時間(ミリ秒)。デフォルトは
30000
(30秒)です。0
を渡すとタイムアウトが無効になります。デフォルト値は browser_context.set_default_timeout() または page.set_default_timeout() メソッドを使用して変更できます。 -
trial
bool (optional)追加: v1.11#設定されている場合、このメソッドは actionability チェックのみを実行し、アクションはスキップします。デフォルトは
false
です。アクションを実行せずに要素がアクションの準備ができるまで待機する場合に役立ちます。
戻り値
text_content
v1.9 以前に追加代わりにロケーターベースの locator.text_content() を使用してください。ロケーターについて詳しくはこちら。
node.textContent
を返します。
使用法
element_handle.text_content()
戻り値
type
v1.9 以前に追加ほとんどの場合、代わりに locator.fill() を使用する必要があります。ページに特別なキーボード処理がある場合にのみ、キーを1つずつ押す必要があります。その場合は locator.press_sequentially() を使用してください。
要素にフォーカスし、テキストの各文字に対して keydown
、keypress
/input
、および keyup
イベントを送信します。
Control
や ArrowDown
のような特殊キーを押すには、element_handle.press() を使用してください。
使用法
引数
-
フォーカスされた要素に入力するテキスト。
-
キー押下間の待機時間(ミリ秒)。デフォルトは 0 です。
-
no_wait_after
bool (optional)#非推奨このオプションは効果がありません。
このオプションは効果がありません。
-
最大時間(ミリ秒)。デフォルトは
30000
(30秒)です。0
を渡すとタイムアウトが無効になります。デフォルト値は browser_context.set_default_timeout() または page.set_default_timeout() メソッドを使用して変更できます。
戻り値
uncheck
v1.9 以前に追加代わりにロケーターベースの locator.uncheck() を使用してください。ロケーターについて詳しくはこちら。
このメソッドは、以下の手順を実行して要素をチェックします。
- 要素がチェックボックスまたはラジオ入力であることを確認します。そうでない場合、このメソッドは例外をスローします。要素がすでにアンチェックされている場合、このメソッドはすぐに戻ります。
- force オプションが設定されていない限り、要素に対する actionability チェックを待ちます。
- 必要に応じて、要素をビューポート内にスクロールします。
- page.mouse を使用して、要素の中心をクリックします。
- 要素が現在アンチェックされていることを確認します。そうでない場合、このメソッドは例外をスローします。
アクション中に要素が DOM からデタッチされた場合、このメソッドは例外をスローします。
すべての手順が指定された timeout 内に完了しなかった場合、このメソッドは TimeoutError をスローします。タイムアウトをゼロに設定すると、これを無効にできます。
使用法
element_handle.uncheck()
element_handle.uncheck(**kwargs)
引数
-
actionability チェックをバイパスするかどうか。デフォルトは
false
です。 -
no_wait_after
bool (optional)#非推奨このオプションは効果がありません。
このオプションは効果がありません。
-
position
Dict (optional)追加: v1.11#要素のパディングボックスの左上隅を基準に使用する点。指定されていない場合、要素の何らかの可視点を使用します。
-
最大時間(ミリ秒)。デフォルトは
30000
(30秒)です。0
を渡すとタイムアウトが無効になります。デフォルト値は browser_context.set_default_timeout() または page.set_default_timeout() メソッドを使用して変更できます。 -
trial
bool (optional)追加: v1.11#設定されている場合、このメソッドは actionability チェックのみを実行し、アクションはスキップします。デフォルトは
false
です。アクションを実行せずに要素がアクションの準備ができるまで待機する場合に役立ちます。
戻り値
wait_for_selector
v1.9 以前に追加代わりに、可視性をアサートするWebアサーション、またはロケーターベースのlocator.wait_for()を使用してください。
state オプションを満たすとき、セレクターで指定された要素を返します。hidden
または detached
を待機している場合は null
を返します。
要素ハンドルに相対的なセレクターがstateオプション (DOMへの出現/消滅、または表示/非表示) を満たすまで待機します。メソッド呼び出し時点でセレクターが既に条件を満たしている場合、メソッドは直ちに返ります。timeout ミリ秒間セレクターが条件を満たさない場合、関数は例外をスローします。
使用法
- 同期
- 非同期
page.set_content("<div><span></span></div>")
div = page.query_selector("div")
# waiting for the "span" selector relative to the div.
span = div.wait_for_selector("span", state="attached")
await page.set_content("<div><span></span></div>")
div = await page.query_selector("div")
# waiting for the "span" selector relative to the div.
span = await div.wait_for_selector("span", state="attached")
このメソッドはナビゲーションをまたいで機能しません。代わりに page.wait_for_selector() を使用してください。
引数
-
クエリ対象のセレクター。
-
state
"attached" | "detached" | "visible" | "hidden" (オプション)#デフォルトは
'visible'
です。以下のいずれかになります。'attached'
- 要素がDOMに存在することを待ちます。'detached'
- 要素がDOMに存在しないことを待ちます。'visible'
- 要素が空でないバウンディングボックスを持ち、visibility:hidden
でないことを待ちます。内容がない要素、またはdisplay:none
の要素は空のバウンディングボックスを持ち、可視とは見なされないことに注意してください。'hidden'
- 要素がDOMからデタッチされるか、空のバウンディングボックスを持つか、またはvisibility:hidden
であることを待ちます。これは'visible'
オプションとは逆です。
-
true の場合、呼び出しはセレクターが単一の要素に解決されることを要求します。指定されたセレクターが複数の要素に解決される場合、呼び出しは例外をスローします。
-
最大時間(ミリ秒)。デフォルトは
30000
(30秒)です。0
を渡すとタイムアウトが無効になります。デフォルト値は browser_context.set_default_timeout() または page.set_default_timeout() メソッドを使用して変更できます。
戻り値