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

Locator

ロケーターは、Playwright の自動待機および再試行機能の中心的な要素です。簡単に言えば、ロケーターは、いつでもページ上の要素を見つける方法を表します。ロケーターは、page.locator() メソッドで作成できます。

ロケーターの詳細.


メソッド

all

追加: v1.29 locator.all

ロケーターが要素のリストを指している場合、これはそれぞれの要素を指すロケーターの配列を返します。

locator.all() は、ロケーターに一致する要素を待たず、代わりにページに存在するものをすぐに返します。

要素のリストが動的に変更される場合、locator.all() は予測不可能で不安定な結果を生成します。

要素のリストが安定しているが動的にロードされる場合は、locator.all() を呼び出す前に、完全なリストのロードが完了するのを待ちます。

使用法

for li in page.get_by_role('listitem').all():
li.click();

戻り値


all_inner_texts

追加されたバージョン: v1.14 locator.all_inner_texts

すべての一致するノードの node.innerText 値の配列を返します。

テキストのアサート

ページ上のテキストをアサートする必要がある場合は、不安定さを避けるために expect(locator).to_have_text()use_inner_text オプションを使用することをお勧めします。詳細については、アサーションガイドを参照してください。

使用法

texts = page.get_by_role("link").all_inner_texts()

戻り値


all_text_contents

追加されたバージョン: v1.14 locator.all_text_contents

すべての一致するノードの node.textContent 値の配列を返します。

テキストのアサート

ページ上のテキストをアサートする必要がある場合は、不安定さを避けるために expect(locator).to_have_text() を使用することをお勧めします。詳細については、アサーションガイドを参照してください。

使用法

texts = page.get_by_role("link").all_text_contents()

戻り値


and_

追加バージョン: v1.34 locator.and_

このロケーターと引数ロケーターの両方に一致するロケーターを作成します。

使用法

次の例は、特定のタイトルを持つボタンを検索します。

button = page.get_by_role("button").and_(page.getByTitle("Subscribe"))

引数

戻り値


aria_snapshot

追加バージョン: v1.49 locator.aria_snapshot

指定された要素の aria スナップショットをキャプチャします。aria スナップショットと、対応するアサーションについてはexpect(locator).to_match_aria_snapshot() を参照してください。

使用法

page.get_by_role("link").aria_snapshot()

引数

戻り値

詳細

このメソッドは、指定された要素の aria スナップショットをキャプチャします。スナップショットは、要素とその子孫の状態を表す文字列です。スナップショットは、テストで要素の状態をアサートしたり、将来の状態と比較したりするために使用できます。

ARIA スナップショットは、YAML マークアップ言語を使用して表現されます。

  • オブジェクトのキーは、要素の役割とオプションのアクセシブル名です。
  • 値は、テキストコンテンツまたは子要素の配列です。
  • 汎用的な静的テキストは、text キーで表現できます。

以下は HTML マークアップとそれぞれの ARIA スナップショットです。

<ul aria-label="Links">
<li><a href="/">Home</a></li>
<li><a href="/about">About</a></li>
<ul>
- list "Links":
- listitem:
- link "Home"
- listitem:
- link "About"

blur

追加バージョン: v1.28 locator.blur

要素上で blur を呼び出します。

使用法

locator.blur()
locator.blur(**kwargs)

引数

戻り値


bounding_box

追加されたバージョン: v1.14 locator.bounding_box

このメソッドは、ロケーターに一致する要素の境界ボックスを返します。要素が可視でない場合は null を返します。境界ボックスは、メインフレームのビューポート (通常はブラウザーウィンドウと同じ) を基準に計算されます。

使用法

box = page.get_by_role("button").bounding_box()
page.mouse.click(box["x"] + box["width"] / 2, box["y"] + box["height"] / 2)

引数

戻り値

  • NoneType | Dict#
    • x float

      要素の x 座標 (ピクセル単位)。

    • y float

      要素の y 座標 (ピクセル単位)。

    • width float

      要素の幅 (ピクセル単位)。

    • height float

      要素の高さ (ピクセル単位)。

詳細

スクロールは、Element.getBoundingClientRect と同様に、返される境界ボックスに影響を与えます。つまり、x および/または y が負になる可能性があります。

子フレームの要素は、Element.getBoundingClientRect とは異なり、メインフレームを基準とした境界ボックスを返します。

ページが静的であると仮定すると、境界ボックスの座標を使用して入力を実行するのは安全です。たとえば、次のスニペットは要素の中心をクリックするはずです。


check

追加されたバージョン: v1.14 locator.check

チェックボックスまたはラジオ要素がチェックされていることを確認します。

使用法

page.get_by_role("checkbox").check()

引数

  • force bool (オプション)#

    アクション性チェックをバイパスするかどうか。デフォルトは false です。

  • no_wait_after bool (オプション)#

    非推奨

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

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

  • position Dict (オプション)#

    要素のパディングボックスの左上隅を基準に使用する点。指定しない場合は、要素の可視点の一部が使用されます。

  • timeout float (オプション)#

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

  • trial bool (オプション)#

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

戻り値

詳細

次のステップを実行します。

  1. 要素がチェックボックスまたはラジオ入力であることを確認します。そうでない場合、このメソッドはスローします。要素がすでにチェックされている場合、このメソッドはすぐに返します。
  2. force オプションが設定されていない限り、要素に対する アクション性 チェックを待ちます。
  3. 必要に応じて要素を表示するためにスクロールします。
  4. page.mouse を使用して要素の中央をクリックします。
  5. 要素が現在チェックされていることを確認します。そうでない場合、このメソッドはスローします。

アクション中に要素が DOM から分離された場合、このメソッドはスローします。

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


clear

追加バージョン: v1.28 locator.clear

入力フィールドをクリアします。

使用法

page.get_by_role("textbox").clear()

引数

  • force bool (オプション)#

    アクション性チェックをバイパスするかどうか。デフォルトは false です。

  • no_wait_after bool (オプション)#

    非推奨

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

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

  • timeout float (オプション)#

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

戻り値

詳細

このメソッドは、アクション性チェックを待ち、要素にフォーカスし、クリアして、クリア後に input イベントをトリガーします。

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


click

追加されたバージョン: v1.14 locator.click

要素をクリックします。

使用法

ボタンをクリックする

page.get_by_role("button").click()

キャンバスの特定の位置で Shift キーを押しながら右クリックする

page.locator("canvas").click(
button="right", modifiers=["Shift"], position={"x": 23, "y": 32}
)

引数

  • button "left" | "right" | "middle" (オプション)#

    デフォルトは left です。

  • click_count int (オプション)#

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

  • delay float (オプション)#

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

  • force bool (オプション)#

    アクション性チェックをバイパスするかどうか。デフォルトは false です。

  • modifiers リスト["Alt" | "Control" | "ControlOrMeta" | "Meta" | "Shift"] (オプション)#

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

  • no_wait_after bool (オプション)#

    非推奨

    このオプションは将来 true になります。

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

  • position Dict (オプション)#

    要素のパディングボックスの左上隅を基準に使用する点。指定しない場合は、要素の可視点の一部が使用されます。

  • timeout float (オプション)#

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

  • trial bool (オプション)#

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

戻り値

詳細

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

  1. force オプションが設定されていない限り、要素に対する アクション性 チェックを待ちます。
  2. 必要に応じて要素を表示するためにスクロールします。
  3. page.mouse を使用して、要素の中央または指定された position をクリックします。
  4. no_wait_after オプションが設定されていない限り、開始されたナビゲーションが成功または失敗するまで待ちます。

アクション中に要素が DOM から分離された場合、このメソッドはスローします。

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


count

追加されたバージョン: v1.14 locator.count

ロケーターに一致する要素の数を返します。

カウントのアサート

ページ上の要素の数をアサートする必要がある場合は、不安定さを避けるために expect(locator).to_have_count() を使用することをお勧めします。詳細については、アサーションガイドを参照してください。

使用法

count = page.get_by_role("listitem").count()

戻り値


dblclick

追加されたバージョン: v1.14 locator.dblclick

要素をダブルクリックします。

使用法

locator.dblclick()
locator.dblclick(**kwargs)

引数

  • button "left" | "right" | "middle" (オプション)#

    デフォルトは left です。

  • delay float (オプション)#

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

  • force bool (オプション)#

    アクション性チェックをバイパスするかどうか。デフォルトは false です。

  • modifiers リスト["Alt" | "Control" | "ControlOrMeta" | "Meta" | "Shift"] (オプション)#

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

  • no_wait_after bool (オプション)#

    非推奨

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

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

  • position Dict (オプション)#

    要素のパディングボックスの左上隅を基準に使用する点。指定しない場合は、要素の可視点の一部が使用されます。

  • timeout float (オプション)#

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

  • trial bool (オプション)#

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

戻り値

詳細

このメソッドは、次の手順を実行して要素をダブルクリックします。

  1. force オプションが設定されていない限り、要素に対する アクション性 チェックを待ちます。
  2. 必要に応じて要素を表示するためにスクロールします。
  3. page.mouse を使用して、要素の中央または指定された position をダブルクリックします。

アクション中に要素が DOM から分離された場合、このメソッドはスローします。

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

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


describe

追加: v1.53 locator.describe

ロケーターを記述します。記述はトレースビューアーとレポートで使用されます。同じ要素を指すロケーターを返します。

使用法

button = page.get_by_test_id("btn-sub").describe("Subscribe button")
button.click()

引数

  • description str#

    ロケーターの説明。

戻り値


dispatch_event

追加されたバージョン: v1.14 locator.dispatch_event

一致する要素に対してイベントをプログラム的にディスパッチします。

使用法

locator.dispatch_event("click")

引数

  • type str#

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

  • event_init 評価引数 (オプション)#

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

  • timeout float (オプション)#

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

戻り値

詳細

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

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

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

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

data_transfer = page.evaluate_handle("new DataTransfer()")
locator.dispatch_event("#source", "dragstart", {"dataTransfer": data_transfer})

drag_to

追加: v1.18 locator.drag_to

ソース要素をターゲット要素にドラッグしてドロップします。

使用法

source = page.locator("#source")
target = page.locator("#target")

source.drag_to(target)
# or specify exact positions relative to the top-left corners of the elements:
source.drag_to(
target,
source_position={"x": 34, "y": 7},
target_position={"x": 10, "y": 20}
)

引数

  • target ロケーター#

    ドラッグ先の要素のロケーター。

  • force bool (オプション)#

    アクション性チェックをバイパスするかどうか。デフォルトは false です。

  • no_wait_after bool (オプション)#

    非推奨

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

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

  • source_position Dict (オプション)#

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

  • target_position Dict (オプション)#

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

  • timeout float (オプション)#

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

  • trial bool (オプション)#

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

戻り値

詳細

このメソッドは、ロケーターを別のターゲットロケーターまたはターゲット位置にドラッグします。まずソース要素に移動し、mousedown を実行し、次にターゲット要素または位置に移動し、mouseup を実行します。


evaluate

追加されたバージョン: v1.14 locator.evaluate

一致する要素を引数として、ページ内で JavaScript コードを実行します。

使用法

expression に引数を渡す

result = page.get_by_testid("myId").evaluate("(element, [x, y]) => element.textContent + ' ' + x * y", [7, 8])
print(result) # prints "myId text 56"

引数

  • expression str#

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

  • arg 評価引数 (オプション)#

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

  • timeout float (オプション)#

    評価前にロケーターを待機する最大時間 (ミリ秒)。ロケーターが解決された後、評価自体はタイムアウトによって制限されないことに注意してください。デフォルトは 30000 (30 秒) です。タイムアウトを無効にするには 0 を渡します。

戻り値

詳細

expression の戻り値を返します。これは、一致する要素を最初の引数として、arg を 2 番目の引数として呼び出されます。

expressionPromise を返す場合、このメソッドは Promise が解決されるのを待ち、その値を返します。

expression がスローまたは拒否された場合、このメソッドはスローします。


evaluate_all

追加されたバージョン: v1.14 locator.evaluate_all

すべての一致する要素を引数として、ページ内で JavaScript コードを実行します。

使用法

locator = page.locator("div")
more_than_ten = locator.evaluate_all("(divs, min) => divs.length > min", 10)

引数

  • expression str#

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

  • arg 評価引数 (オプション)#

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

戻り値

詳細

expression の戻り値を返します。これは、すべての一致する要素の配列を最初の引数として、arg を 2 番目の引数として呼び出されます。

expressionPromise を返す場合、このメソッドは Promise が解決されるのを待ち、その値を返します。

expression がスローまたは拒否された場合、このメソッドはスローします。


evaluate_handle

追加されたバージョン: v1.14 locator.evaluate_handle

一致する要素を引数として、ページで JavaScript コードを実行し、結果を JSHandle で返します。

使用法

locator.evaluate_handle(expression)
locator.evaluate_handle(expression, **kwargs)

引数

  • expression str#

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

  • arg 評価引数 (オプション)#

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

  • timeout float (オプション)#

    評価前にロケーターを待機する最大時間 (ミリ秒)。ロケーターが解決された後、評価自体はタイムアウトによって制限されないことに注意してください。デフォルトは 30000 (30 秒) です。タイムアウトを無効にするには 0 を渡します。

戻り値

詳細

expression の戻り値を JSHandle として返します。これは、一致する要素を最初の引数として、arg を 2 番目の引数として呼び出されます。

locator.evaluate()locator.evaluate_handle() の唯一の違いは、locator.evaluate_handle()JSHandle を返すことです。

expressionPromise を返す場合、このメソッドは Promise が解決されるのを待ち、その値を返します。

expression がスローまたは拒否された場合、このメソッドはスローします。

詳細については、page.evaluate_handle() を参照してください。


fill

追加されたバージョン: v1.14 locator.fill

入力フィールドに値を設定します。

使用法

page.get_by_role("textbox").fill("example value")

引数

  • value str#

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

  • force bool (オプション)#

    アクション性チェックをバイパスするかどうか。デフォルトは false です。

  • no_wait_after bool (オプション)#

    非推奨

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

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

  • timeout float (オプション)#

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

戻り値

詳細

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

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

きめ細かなキーボードイベントを送信するには、locator.press_sequentially() を使用します。


filter

追加: v1.22 locator.filter

このメソッドは、オプションに応じて既存のロケーターを絞り込みます (例: テキストでフィルタリングします)。複数回フィルタリングするために連結できます。

使用法

row_locator = page.locator("tr")
# ...
row_locator.filter(has_text="text in column 1").filter(
has=page.get_by_role("button", name="column 2 button")
).screenshot()

引数

  • has ロケーター (オプション)#

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

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

    外側のロケーターと内側のロケーターは同じフレームに属している必要があります。内側のロケーターには FrameLocator を含めることはできません。

  • has_not ロケーター (オプション)追加バージョン: v1.33#

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

    外側のロケーターと内側のロケーターは同じフレームに属している必要があります。内側のロケーターには FrameLocator を含めることはできません。

  • has_not_text str | Pattern (オプション)追加バージョン: v1.33#

    指定されたテキストを、おそらく子または子孫要素内にどこかに含まない要素と一致します。 [string] が渡された場合、大文字と小文字を区別せず、部分文字列を検索します。

  • has_text str | Pattern (オプション)#

    指定されたテキストを、おそらく子または子孫要素内にどこかに含む要素と一致します。 [string] が渡された場合、大文字と小文字を区別せず、部分文字列を検索します。たとえば、"Playwright"<article><div>Playwright</div></article> と一致します。

  • visible bool (オプション)追加バージョン: v1.51#

    可視または不可視の要素のみと一致します。

戻り値


focus

追加されたバージョン: v1.14 locator.focus

一致する要素で focus を呼び出します。

使用法

locator.focus()
locator.focus(**kwargs)

引数

戻り値


frame_locator

追加バージョン: v1.17 locator.frame_locator

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

使用法

locator = page.frame_locator("iframe").get_by_text("Submit")
locator.click()

引数

  • selector str#

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

戻り値


get_attribute

追加されたバージョン: v1.14 locator.get_attribute

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

属性のアサート

要素の属性をアサートする必要がある場合は、不安定さを避けるために expect(locator).to_have_attribute() を使用することをお勧めします。詳細については、アサーションガイドを参照してください。

使用法

locator.get_attribute(name)
locator.get_attribute(name, **kwargs)

引数

戻り値


get_by_alt_text

追加バージョン: v1.27 locator.get_by_alt_text

要素をそのaltテキストで特定できます。

使用法

例えば、このメソッドはaltテキスト「Playwright logo」で画像を見つけます。

<img alt='Playwright logo'>
page.get_by_alt_text("Playwright logo").click()

引数

  • text str | Pattern#

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

  • exact bool (オプション)#

    完全一致(大文字小文字を区別し、文字列全体)を見つけるかどうか。デフォルトはfalse。正規表現で特定する場合は無視されます。正確な一致でも空白はトリムされることに注意してください。

戻り値


get_by_label

追加バージョン: v1.27 locator.get_by_label

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

使用法

例えば、このメソッドは以下のDOMでラベル「Username」と「Password」を持つ入力を見つけます。

<input aria-label="Username">
<label for="password-input">Password:</label>
<input id="password-input">
page.get_by_label("Username").fill("john")
page.get_by_label("Password").fill("secret")

引数

  • text str | Pattern#

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

  • exact bool (オプション)#

    完全一致(大文字小文字を区別し、文字列全体)を見つけるかどうか。デフォルトはfalse。正規表現で特定する場合は無視されます。正確な一致でも空白はトリムされることに注意してください。

戻り値


get_by_placeholder

追加バージョン: v1.27 locator.get_by_placeholder

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

使用法

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

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

プレースホルダーテキストで入力を見つけてから、入力できます。

page.get_by_placeholder("name@example.com").fill("playwright@microsoft.com")

引数

  • text str | Pattern#

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

  • exact bool (オプション)#

    完全一致(大文字小文字を区別し、文字列全体)を見つけるかどうか。デフォルトはfalse。正規表現で特定する場合は無視されます。正確な一致でも空白はトリムされることに注意してください。

戻り値


get_by_role

追加バージョン: v1.27 locator.get_by_role

要素をそのARIAロールARIA属性、およびアクセシブルネームで特定できます。

使用法

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

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

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

expect(page.get_by_role("heading", name="Sign up")).to_be_visible()

page.get_by_role("checkbox", name="Subscribe").check()

page.get_by_role("button", name=re.compile("submit", re.IGNORECASE)).click()

引数

  • role "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ロール。

  • checked bool (オプション)#

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

    aria-checkedの詳細。

  • disabled bool (オプション)#

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

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

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

    name が厳密に一致するかどうか: 大文字と小文字を区別し、文字列全体が一致するかどうか。デフォルトは false です。name が正規表現の場合は無視されます。厳密な一致でも空白はトリミングされることに注意してください。

  • expanded bool (オプション)#

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

    aria-expandedの詳細。

  • include_hidden bool (オプション)#

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

    aria-hiddenの詳細。

  • level int (オプション)#

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

    aria-levelの詳細。

  • name str | Pattern (オプション)#

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

    アクセシブルネームの詳細。

  • pressed bool (オプション)#

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

    aria-pressedの詳細。

  • selected bool (オプション)#

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

    aria-selectedの詳細。

戻り値

詳細

ロールセレクターは、アクセシビリティ監査や適合性テストを**置き換えるものではなく**、ARIAガイドラインに関する早期のフィードバックを提供します。

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


get_by_test_id

追加バージョン: v1.27 locator.get_by_test_id

テストIDによって要素を特定します。

使用法

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

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

テストIDによって要素を特定できます。

page.get_by_test_id("directions").click()

引数

戻り値

詳細

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


get_by_text

追加バージョン: v1.27 locator.get_by_text

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

アクセス可能なロールなどの別の基準で一致させ、その後テキストコンテンツでフィルタリングできる locator.filter() メソッドも参照してください。

使用法

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

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

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

# Matches <span>
page.get_by_text("world")

# Matches first <div>
page.get_by_text("Hello world")

# Matches second <div>
page.get_by_text("Hello", exact=True)

# Matches both <div>s
page.get_by_text(re.compile("Hello"))

# Matches second <div>
page.get_by_text(re.compile("^hello$", re.IGNORECASE))

引数

  • text str | Pattern#

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

  • exact bool (オプション)#

    完全一致(大文字小文字を区別し、文字列全体)を見つけるかどうか。デフォルトはfalse。正規表現で特定する場合は無視されます。正確な一致でも空白はトリムされることに注意してください。

戻り値

詳細

テキストによる一致は、厳密な一致であっても常に空白を正規化します。例えば、複数のスペースを1つにまとめ、改行をスペースに変換し、先頭と末尾の空白を無視します。

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


get_by_title

追加バージョン: v1.27 locator.get_by_title

要素をそのタイトル属性で特定できます。

使用法

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

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

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

expect(page.get_by_title("Issues count")).to_have_text("25 issues")

引数

  • text str | Pattern#

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

  • exact bool (オプション)#

    完全一致(大文字小文字を区別し、文字列全体)を見つけるかどうか。デフォルトはfalse。正規表現で特定する場合は無視されます。正確な一致でも空白はトリムされることに注意してください。

戻り値


highlight

追加バージョン: v1.20 locator.highlight

画面上の対応する要素を強調表示します。デバッグに役立ちます。locator.highlight() を使用するコードはコミットしないでください。

使用法

locator.highlight()

戻り値


hover

追加されたバージョン: v1.14 locator.hover

一致する要素にホバーします。

使用法

page.get_by_role("link").hover()

引数

  • force bool (オプション)#

    アクション性チェックをバイパスするかどうか。デフォルトは false です。

  • modifiers リスト["Alt" | "Control" | "ControlOrMeta" | "Meta" | "Shift"] (オプション)#

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

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

    非推奨

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

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

  • position Dict (オプション)#

    要素のパディングボックスの左上隅を基準に使用する点。指定しない場合は、要素の可視点の一部が使用されます。

  • timeout float (オプション)#

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

  • trial bool (オプション)#

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

戻り値

詳細

このメソッドは、次の手順を実行して要素にホバーします。

  1. force オプションが設定されていない限り、要素に対する アクション性 チェックを待ちます。
  2. 必要に応じて要素を表示するためにスクロールします。
  3. page.mouse を使用して、要素の中央または指定された position にホバーします。

アクション中に要素が DOM から分離された場合、このメソッドはスローします。

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


inner_html

追加されたバージョン: v1.14 locator.inner_html

element.innerHTML を返します。

使用法

locator.inner_html()
locator.inner_html(**kwargs)

引数

戻り値


inner_text

追加されたバージョン: v1.14 locator.inner_text

element.innerText を返します。

テキストのアサート

ページ上のテキストをアサートする必要がある場合は、不安定さを避けるために expect(locator).to_have_text()use_inner_text オプションを使用することをお勧めします。詳細については、アサーションガイドを参照してください。

使用法

locator.inner_text()
locator.inner_text(**kwargs)

引数

戻り値


input_value

追加されたバージョン: v1.14 locator.input_value

一致する <input><textarea>、または <select> 要素の値を返します。

値のアサート

入力値をアサートする必要がある場合は、不安定さを避けるために expect(locator).to_have_value() を使用することをお勧めします。詳細については、アサーションガイドを参照してください。

使用法

value = page.get_by_role("textbox").input_value()

引数

戻り値

詳細

入力、テキストエリア、または選択要素ではない要素をスローします。ただし、要素が関連付けられた コントロール を持つ <label> 要素内にある場合、コントロールの値を返します。


is_checked

追加されたバージョン: v1.14 locator.is_checked

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

チェック状態のアサート

チェックボックスがチェックされていることをアサートする必要がある場合は、不安定さを避けるために expect(locator).to_be_checked() を使用することをお勧めします。詳細については、アサーションガイドを参照してください。

使用法

checked = page.get_by_role("checkbox").is_checked()

引数

戻り値


is_disabled

追加されたバージョン: v1.14 locator.is_disabled

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

無効状態のアサート

要素が無効であることをアサートする必要がある場合は、不安定さを避けるために expect(locator).to_be_disabled() を使用することをお勧めします。詳細については、アサーションガイドを参照してください。

使用法

disabled = page.get_by_role("button").is_disabled()

引数

戻り値


is_editable

追加されたバージョン: v1.14 locator.is_editable

要素が 編集可能 かどうかを返します。ターゲット要素が <input><textarea><select>[contenteditable] ではなく、[aria-readonly] を許可するロールを持たない場合、このメソッドはエラーをスローします。

編集可能状態のアサート

要素が編集可能であることをアサートする必要がある場合は、不安定さを避けるために expect(locator).to_be_editable() を使用することをお勧めします。詳細については、アサーションガイドを参照してください。

使用法

editable = page.get_by_role("textbox").is_editable()

引数

戻り値


is_enabled

追加されたバージョン: v1.14 locator.is_enabled

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

有効状態のアサート

要素が有効であることをアサートする必要がある場合は、不安定さを避けるために expect(locator).to_be_enabled() を使用することをお勧めします。詳細については、アサーションガイドを参照してください。

使用法

enabled = page.get_by_role("button").is_enabled()

引数

戻り値


is_hidden

追加されたバージョン: v1.14 locator.is_hidden

要素が非表示になっているかどうか (つまり、表示の反対) を返します。

可視性のアサート

要素が非表示であることをアサートする必要がある場合は、不安定さを避けるために expect(locator).to_be_hidden() を使用することをお勧めします。詳細については、アサーションガイドを参照してください。

使用法

hidden = page.get_by_role("button").is_hidden()

引数

  • timeout float (オプション)#

    非推奨

    このオプションは無視されます。locator.is_hidden() は、要素が非表示になるまで待たずにすぐに返します。

戻り値


is_visible

追加されたバージョン: v1.14 locator.is_visible

要素が 可視 かどうかを返します。

可視性のアサート

要素が可視であることをアサートする必要がある場合は、不安定さを避けるために expect(locator).to_be_visible() を使用することをお勧めします。詳細については、アサーションガイドを参照してください。

使用法

visible = page.get_by_role("button").is_visible()

引数

  • timeout float (オプション)#

    非推奨

    このオプションは無視されます。locator.is_visible() は、要素が可視になるまで待たずにすぐに返します。

戻り値


locator

追加されたバージョン: v1.14 locator.locator

このメソッドは、ロケーターのサブツリー内で指定されたセレクターに一致する要素を検索します。locator.filter() メソッドと同様に、フィルタオプションも受け入れます。

ロケーターの詳細.

使用法

locator.locator(selector_or_locator)
locator.locator(selector_or_locator, **kwargs)

引数

  • selector_or_locator str | ロケーター#

    DOM要素を解決するときに使用するセレクターまたはロケーター。

  • has ロケーター (オプション)#

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

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

    外側のロケーターと内側のロケーターは同じフレームに属している必要があります。内側のロケーターには FrameLocator を含めることはできません。

  • has_not ロケーター (オプション)追加バージョン: v1.33#

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

    外側のロケーターと内側のロケーターは同じフレームに属している必要があります。内側のロケーターには FrameLocator を含めることはできません。

  • has_not_text str | Pattern (オプション)追加バージョン: v1.33#

    指定されたテキストを、おそらく子または子孫要素内にどこかに含まない要素と一致します。 [string] が渡された場合、大文字と小文字を区別せず、部分文字列を検索します。

  • has_text str | Pattern (オプション)#

    指定されたテキストを、おそらく子または子孫要素内にどこかに含む要素と一致します。 [string] が渡された場合、大文字と小文字を区別せず、部分文字列を検索します。たとえば、"Playwright"<article><div>Playwright</div></article> と一致します。

戻り値


nth

追加されたバージョン: v1.14 locator.nth

n番目の一致する要素のロケーターを返します。0から始まるため、nth(0) は最初の要素を選択します。

使用法

banana = page.get_by_role("listitem").nth(2)

引数

戻り値


or_

追加バージョン: v1.33 locator.or_

2つのロケーターのいずれかまたは両方に一致するすべての要素に一致するロケーターを作成します。

両方のロケーターが何かと一致する場合、結果のロケーターには複数の要素が一致し、ロケーターストライクネス違反が発生する可能性があることに注意してください。

使用法

「新しいメール」ボタンをクリックしたいが、セキュリティ設定ダイアログが代わりに表示される場合を考えてみましょう。この場合、「新しいメール」ボタンまたはダイアログのいずれかを待ち、それに応じて動作できます。

「新しいメール」ボタンとセキュリティダイアログの両方が画面に表示された場合、「or」ロケーターは両方と一致し、「厳密モード違反」エラーをスローする可能性があります。この場合、locator.first を使用して、いずれか一方のみに一致させることができます。

new_email = page.get_by_role("button", name="New")
dialog = page.get_by_text("Confirm security settings")
expect(new_email.or_(dialog).first).to_be_visible()
if (dialog.is_visible()):
page.get_by_role("button", name="Dismiss").click()
new_email.click()

引数

戻り値


press

追加されたバージョン: v1.14 locator.press

一致する要素にフォーカスを当て、キーの組み合わせを押します。

使用法

page.get_by_role("textbox").press("Backspace")

引数

  • key str#

    押すキーの名前、または ArrowLefta などの生成する文字。

  • delay float (オプション)#

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

  • no_wait_after bool (オプション)#

    非推奨

    このオプションは将来 true になります。

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

  • timeout float (オプション)#

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

戻り値

詳細

要素にフォーカスを当て、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, ControlOrMetaControlOrMetaはWindowsおよびLinuxではControlに、macOSではMetaに解決されます。

Shiftを押しながら入力すると、キーに対応するテキストが大文字で入力されます。

キーが単一の文字の場合、大文字と小文字が区別されるため、値aAはそれぞれ異なるテキストを生成します。

key: "Control+o"key: "Control++key: "Control+Shift+T"のようなショートカットもサポートされています。修飾キーを指定した場合、修飾キーは押し続けられ、その後に続くキーが押されます。


press_sequentially

追加バージョン: v1.38 locator.press_sequentially
ヒント

ほとんどの場合、代わりにlocator.fill()を使用する必要があります。ページで特殊なキーボード処理がある場合にのみ、キーを1つずつ押す必要があります。

要素にフォーカスし、テキスト内の各文字に対してkeydownkeypress/input、およびkeyupイベントを送信します。

ControlArrowDownのような特殊キーを押すには、locator.press()を使用します。

使用法

locator.press_sequentially("hello") # types instantly
locator.press_sequentially("world", delay=100) # types slower, like a user

テキストフィールドに入力し、フォームを送信する例

locator = page.get_by_label("Password")
locator.press_sequentially("my password")
locator.press("Enter")

引数

  • text str#

    フォーカスされた要素に順次押す文字の文字列。

  • delay float (オプション)#

    キー押下間の待機時間(ミリ秒)。デフォルトは0です。

  • no_wait_after bool (オプション)#

    非推奨

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

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

  • timeout float (オプション)#

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

戻り値


screenshot

追加されたバージョン: v1.14 locator.screenshot

ロケーターに一致する要素のスクリーンショットを撮ります。

使用法

page.get_by_role("link").screenshot()

アニメーションを無効にし、スクリーンショットをファイルに保存します

page.get_by_role("link").screenshot(animations="disabled", path="link.png")

引数

  • animations "disabled" | "allow" (オプション)#

    "disabled"に設定すると、CSSアニメーション、CSSトランジション、Webアニメーションが停止します。アニメーションは期間によって異なる扱いを受けます。

    • 有限のアニメーションは完了まで早送りされ、transitionendイベントが発生します。
    • 無限のアニメーションは初期状態にキャンセルされ、スクリーンショットの後に再生されます。

    デフォルトは"allow"で、アニメーションはそのまま残されます。

  • caret "hide" | "initial" (オプション)#

    "hide"に設定すると、スクリーンショットはテキストキャレットを非表示にします。"initial"に設定すると、テキストキャレットの動作は変更されません。デフォルトは"hide"です。

  • mask List[Locator] (オプション)#

    スクリーンショットを撮るときにマスクするロケーターを指定します。マスクされた要素は、バウンディングボックスを完全に覆うピンクのボックス#FF00FFmask_colorでカスタマイズ可能)でオーバーレイされます。マスクは非表示の要素にも適用されます。これを無効にするには、可視要素のみを照合するを参照してください。

  • mask_color str (オプション)追加されたバージョン: v1.35#

    CSSカラー形式で、マスクされた要素のオーバーレイボックスの色を指定します。デフォルトの色はピンク#FF00FFです。

  • omit_background bool (オプション)#

    デフォルトの白い背景を非表示にし、透過性のあるスクリーンショットをキャプチャできるようにします。jpeg画像には適用されません。デフォルトはfalseです。

  • path Union[str, pathlib.Path] (オプション)#

    画像を保存するファイルパス。スクリーンショットの種類はファイル拡張子から推測されます。pathが相対パスの場合、現在の作業ディレクトリからの相対パスとして解決されます。パスが指定されていない場合、画像はディスクに保存されません。

  • quality int (オプション)#

    画像の品質(0~100)。png画像には適用されません。

  • scale "css" | "device" (オプション)#

    "css"に設定すると、スクリーンショットはページ上の各CSSピクセルにつき1ピクセルになります。高DPIデバイスの場合、これによりスクリーンショットが小さく保たれます。"device"オプションを使用すると、各デバイスピクセルにつき1ピクセルが生成されるため、高DPIデバイスのスクリーンショットは2倍以上大きくなります。

    デフォルトは"device"です。

  • style str (オプション)追加日: v1.41#

    スクリーンショット作成時に適用するスタイルシートのテキスト。これにより、動的な要素を非表示にしたり、要素を見えなくしたり、プロパティを変更したりして、再現性のあるスクリーンショットを作成するのに役立ちます。このスタイルシートはShadow DOMを貫通し、内部フレームにも適用されます。

  • timeout float (オプション)#

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

  • type "png" | "jpeg" (オプション)#

    スクリーンショットの種類を指定します。デフォルトはpngです。

戻り値

詳細

このメソッドは、ロケーターに一致する特定の要素のサイズと位置に合わせてクリップされたページのスクリーンショットをキャプチャします。要素が他の要素で覆われている場合、スクリーンショットには実際には表示されません。要素がスクロール可能なコンテナの場合、現在スクロールされているコンテンツのみがスクリーンショットに表示されます。

このメソッドは、アクション可能性チェックを待機し、スクリーンショットを撮る前に要素をビュー内にスクロールします。要素がDOMからデタッチされている場合、このメソッドはエラーをスローします。

キャプチャされたスクリーンショットを含むバッファを返します。


scroll_into_view_if_needed

追加されたバージョン: v1.14 locator.scroll_into_view_if_needed

このメソッドは、アクション可能性チェックを待ち、IntersectionObserverratioで定義されたとおりに完全に表示されている場合を除き、要素をビュー内にスクロールしようとします。

スクロールの代替方法については、スクロールを参照してください。

使用法

locator.scroll_into_view_if_needed()
locator.scroll_into_view_if_needed(**kwargs)

引数

戻り値


select_option

追加されたバージョン: v1.14 locator.select_option

<select>のオプションを選択します。

使用法

<select multiple>
<option value="red">Red</option>
<option value="green">Green</option>
<option value="blue">Blue</option>
</select>
# single selection matching the value or label
element.select_option("blue")
# single selection matching the label
element.select_option(label="blue")
# multiple selection for blue, red and second option
element.select_option(value=["red", "green", "blue"])

引数

  • force bool (オプション)#

    アクション性チェックをバイパスするかどうか。デフォルトは false です。

  • no_wait_after bool (オプション)#

    非推奨

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

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

  • timeout float (オプション)#

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

  • element ElementHandle | List[ElementHandle] (オプション)#

    選択するオプション要素。オプション。

  • index int | List[int] (オプション)#

    インデックスで選択するオプション。オプション。

  • value str | List[str] (オプション)#

    値で選択するオプション。<select>multiple属性がある場合、指定されたすべてのオプションが選択され、そうでない場合は、渡されたオプションのいずれかに一致する最初のオプションのみが選択されます。オプション。

  • label str | List[str] (オプション)#

    ラベルで選択するオプション。<select>multiple属性がある場合、指定されたすべてのオプションが選択され、そうでない場合は、渡されたオプションのいずれかに一致する最初のオプションのみが選択されます。オプション。

戻り値

詳細

このメソッドはアクション可能性チェックを待ち、指定されたすべてのオプションが<select>要素に存在することを確認してから、これらのオプションを選択します。

ターゲット要素が<select>要素でない場合、このメソッドはエラーをスローします。ただし、要素が関連するコントロールを持つ<label>要素内にある場合、代わりにそのコントロールが使用されます。

正常に選択されたオプション値の配列を返します。

提供されたすべてのオプションが選択されると、changeおよびinputイベントをトリガーします。


select_text

追加されたバージョン: v1.14 locator.select_text

このメソッドはアクション可能性チェックを待ち、要素にフォーカスしてそのテキストコンテンツ全体を選択します。

要素が関連するコントロールを持つ<label>要素内にある場合、代わりにコントロールにフォーカスしてテキストを選択します。

使用法

locator.select_text()
locator.select_text(**kwargs)

引数

戻り値


set_checked

追加されたバージョン: v1.15 locator.set_checked

チェックボックスまたはラジオ要素の状態を設定します。

使用法

page.get_by_role("checkbox").set_checked(True)

引数

  • checked bool#

    チェックボックスをチェックするか、チェックを外すか。

  • force bool (オプション)#

    アクション性チェックをバイパスするかどうか。デフォルトは false です。

  • no_wait_after bool (オプション)#

    非推奨

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

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

  • position Dict (オプション)#

    要素のパディングボックスの左上隅を基準に使用する点。指定しない場合は、要素の可視点の一部が使用されます。

  • timeout float (オプション)#

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

  • trial bool (オプション)#

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

戻り値

詳細

このメソッドは、以下の手順を実行して要素をチェックまたはチェック解除します。

  1. 一致する要素がチェックボックスまたはラジオ入力であることを確認します。そうでない場合、このメソッドはエラーをスローします。
  2. 要素がすでに正しいチェック状態である場合、このメソッドはすぐに戻ります。
  3. forceオプションが設定されていない限り、一致する要素に対するアクション可能性チェックを待ちます。チェック中に要素がデタッチされた場合、アクション全体が再試行されます。
  4. 必要に応じて要素を表示するためにスクロールします。
  5. page.mouse を使用して要素の中央をクリックします。
  6. 要素がチェックまたはチェック解除されたことを確認します。そうでない場合、このメソッドはエラーをスローします。

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


set_input_files

追加されたバージョン: v1.14 locator.set_input_files

<input type=file>にファイルまたは複数のファイルをアップロードします。[webkitdirectory]属性を持つ入力の場合、単一のディレクトリパスのみがサポートされます。

使用法

# Select one file
page.get_by_label("Upload file").set_input_files('myfile.pdf')

# Select multiple files
page.get_by_label("Upload files").set_input_files(['file1.txt', 'file2.txt'])

# Select a directory
page.get_by_label("Upload directory").set_input_files('mydir')

# Remove all the selected files
page.get_by_label("Upload file").set_input_files([])

# Upload buffer from memory
page.get_by_label("Upload file").set_input_files(
files=[
{"name": "test.txt", "mimeType": "text/plain", "buffer": b"this is a test"}
],
)

引数

戻り値

詳細

ファイル入力の値をこれらのファイルパスまたはファイルに設定します。いくつかのfilePathsが相対パスの場合、現在の作業ディレクトリからの相対パスとして解決されます。空の配列の場合、選択されたファイルをクリアします。

このメソッドは、Locatorinput要素を指すことを期待します。ただし、要素が関連するコントロールを持つ<label>要素内にある場合、代わりにコントロールをターゲットにします。


tap

追加されたバージョン: v1.14 locator.tap

ロケーターに一致する要素に対してタップジェスチャーを実行します。手動でタッチイベントをディスパッチして他のジェスチャーをエミュレートする例については、レガシーなタッチイベントをエミュレートするページを参照してください。

使用法

locator.tap()
locator.tap(**kwargs)

引数

  • force bool (オプション)#

    アクション性チェックをバイパスするかどうか。デフォルトは false です。

  • modifiers List["Alt" | "Control" | "ControlOrMeta" | "Meta" | "Shift"] (オプション)#

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

  • no_wait_after bool (オプション)#

    非推奨

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

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

  • position Dict (オプション)#

    要素のパディングボックスの左上隅を基準に使用する点。指定しない場合は、要素の可視点の一部が使用されます。

  • timeout float (オプション)#

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

  • trial bool (オプション)#

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

戻り値

詳細

このメソッドは、以下の手順を実行して要素をタップします。

  1. forceオプションが設定されていない限り、要素に対するアクション可能性チェックを待ちます。
  2. 必要に応じて要素を表示するためにスクロールします。
  3. page.touchscreenを使用して、要素の中心、または指定された位置をタップします。

アクション中に要素が DOM から分離された場合、このメソッドはスローします。

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

element.tap()を使用するには、ブラウザコンテキストのhasTouchオプションがtrueに設定されている必要があります。


text_content

追加されたバージョン: v1.14 locator.text_content

node.textContentを返します。

テキストのアサート

ページ上のテキストをアサートする必要がある場合は、不安定さを避けるために expect(locator).to_have_text() を使用することをお勧めします。詳細については、アサーションガイドを参照してください。

使用法

locator.text_content()
locator.text_content(**kwargs)

引数

戻り値


uncheck

追加されたバージョン: v1.14 locator.uncheck

チェックボックスまたはラジオ要素がチェックされていないことを確認します。

使用法

page.get_by_role("checkbox").uncheck()

引数

  • force bool (オプション)#

    アクション性チェックをバイパスするかどうか。デフォルトは false です。

  • no_wait_after bool (オプション)#

    非推奨

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

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

  • position Dict (オプション)#

    要素のパディングボックスの左上隅を基準に使用する点。指定しない場合は、要素の可視点の一部が使用されます。

  • timeout float (オプション)#

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

  • trial bool (オプション)#

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

戻り値

詳細

このメソッドは、以下の手順を実行して要素のチェックを外します。

  1. 要素がチェックボックスまたはラジオ入力であることを確認します。そうでない場合、このメソッドはエラーをスローします。要素がすでにチェックされていない場合、このメソッドはすぐに戻ります。
  2. forceオプションが設定されていない限り、要素に対するアクション可能性チェックを待ちます。
  3. 必要に応じて要素を表示するためにスクロールします。
  4. page.mouse を使用して要素の中央をクリックします。
  5. 要素がチェックされていないことを確認します。そうでない場合、このメソッドはエラーをスローします。

アクション中に要素が DOM から分離された場合、このメソッドはスローします。

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


wait_for

追加バージョン: v1.16 locator.wait_for

ロケーターで指定された要素がstateオプションを満たすときに返ります。

ターゲット要素がすでに条件を満たしている場合、メソッドはすぐに返ります。それ以外の場合、条件が満たされるまで最大timeoutミリ秒待機します。

使用法

order_sent = page.locator("#order-sent")
order_sent.wait_for()

引数

  • state "attached" | "detached" | "visible" | "hidden" (オプション)#

    デフォルトは'visible'です。以下のいずれかになります。

    • 'attached' - 要素がDOMに存在することを待ちます。
    • 'detached' - 要素がDOMに存在しないことを待ちます。
    • 'visible' - 要素が空でない境界ボックスを持ち、visibility:hiddenがないことを待ちます。コンテンツがない要素やdisplay:noneの要素は空の境界ボックスを持つため、可視とはみなされないことに注意してください。
    • 'hidden' - 要素がDOMからデタッチされているか、空の境界ボックスを持つか、またはvisibility:hiddenを持つことを待ちます。これは'visible'オプションとは逆です。
  • timeout float (オプション)#

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

戻り値


プロパティ

content_frame

追加バージョン: v1.43 locator.content_frame

このロケーターと同じiframeを指すFrameLocatorオブジェクトを返します。

Locatorオブジェクトをどこかで取得し、後でフレーム内のコンテンツと対話したい場合に便利です。

逆の操作については、frame_locator.ownerを使用してください。

使用法

locator = page.locator("iframe[name=\"embedded\"]")
# ...
frame_locator = locator.content_frame
frame_locator.get_by_role("button").click()

戻り値


first

追加されたバージョン: v1.14 locator.first

最初の一致要素のロケーターを返します。

使用法

locator.first

戻り値


last

追加されたバージョン: v1.14 locator.last

最後の一致要素のロケーターを返します。

使用法

banana = page.get_by_role("listitem").last

戻り値


page

追加されたバージョン: v1.19 locator.page

このロケーターが属するページ。

使用法

locator.page

戻り値


非推奨

element_handle

追加されたバージョン: v1.14 locator.element_handle
推奨されません

ElementHandleは本質的に競合するため、常にLocatorとWebアサーションを使用してください。

指定されたロケーターを最初の一致するDOM要素に解決します。一致する要素がない場合、1つが見つかるまで待機します。複数の要素がロケーターに一致する場合、エラーをスローします。

使用法

locator.element_handle()
locator.element_handle(**kwargs)

引数

戻り値


element_handles

追加されたバージョン: v1.14 locator.element_handles
推奨されません

ElementHandleは本質的に競合するため、常にLocatorとWebアサーションを使用してください。

指定されたロケーターをすべての一致するDOM要素に解決します。一致する要素がない場合、空のリストを返します。

使用法

locator.element_handles()

戻り値


type

追加されたバージョン: v1.14 locator.type
非推奨

ほとんどの場合、代わりにlocator.fill()を使用してください。ページで特別なキーボード処理がある場合にのみ、キーを1つずつ押す必要があります。この場合はlocator.press_sequentially()を使用してください。

要素にフォーカスし、テキスト内の各文字に対してkeydownkeypress/input、およびkeyupイベントを送信します。

ControlArrowDownのような特殊キーを押すには、locator.press()を使用します。

使用法

引数

  • text str#

    フォーカスされた要素に入力するテキスト。

  • delay float (オプション)#

    キー押下間の待機時間(ミリ秒)。デフォルトは0です。

  • no_wait_after bool (オプション)#

    非推奨

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

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

  • timeout float (オプション)#

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

戻り値