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

Locator

Locator は、Playwright の自動ウェイトとリトライ機能の中心的な要素です。Locator は、ページ上の要素を任意のタイミングで検索する方法を表します。Locator は、Page.locator() メソッドで作成できます。

Locator についてさらに詳しく学ぶ.


メソッド

all

Added in: v1.29 locator.all

Locator が要素のリストを指している場合、これは対応する要素を指す Locator の配列を返します。

note

Locator.all() は、Locator に一致する要素を待機せず、代わりにページに存在するものをすぐに返します。

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

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

使用例

for (Locator li : page.getByRole("listitem").all())
li.click();

戻り値


allInnerTexts

Added in: v1.14 locator.allInnerTexts

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

テキストのアサート

ページ上のテキストをアサートする必要がある場合は、不安定さを避けるために、setUseInnerText オプション付きの assertThat(locator).hasText() を推奨します。詳細については、アサーションガイドを参照してください。

使用例

String[] texts = page.getByRole(AriaRole.LINK).allInnerTexts();

戻り値


allTextContents

Added in: v1.14 locator.allTextContents

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

テキストのアサート

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

使用例

String[] texts = page.getByRole(AriaRole.LINK).allTextContents();

戻り値


and

Added in: v1.34 locator.and

この Locator と引数 Locator の両方に一致する Locator を作成します。

使用例

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

Locator button = page.getByRole(AriaRole.BUTTON).and(page.getByTitle("Subscribe"));

引数

  • locator Locator#

    一致させる追加の Locator。

戻り値


ariaSnapshot

Added in: v1.49 locator.ariaSnapshot

指定された要素の aria スナップショットをキャプチャします。aria スナップショット および対応するアサーション assertThat(locator).matchesAriaSnapshot() について詳しくはこちらをご覧ください。

使用例

page.getByRole(AriaRole.LINK).ariaSnapshot();

引数

  • options Locator.AriaSnapshotOptions (optional)
    • setTimeout double (optional)#

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

戻り値

詳細

このメソッドは、指定された要素の 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

Added in: v1.28 locator.blur

要素の blur を呼び出します。

使用例

Locator.blur();
Locator.blur(options);

引数

  • options Locator.BlurOptions (optional)
    • setTimeout double (optional)#

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

戻り値


boundingBox

Added in: v1.14 locator.boundingBox

このメソッドは、Locator に一致する要素のバウンディングボックスを返します。要素が表示されていない場合は null を返します。バウンディングボックスは、メインフレームのビューポート (通常はブラウザウィンドウと同じ) を基準に計算されます。

使用例

BoundingBox box = page.getByRole(AriaRole.BUTTON).boundingBox();
page.mouse().click(box.x + box.width / 2, box.y + box.height / 2);

引数

  • options Locator.BoundingBoxOptions (optional)
    • setTimeout double (optional)#

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

戻り値

  • null | BoundingBox#
    • x double

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

    • y double

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

    • width double

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

    • height double

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

詳細

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

子フレームからの要素は、Element.getBoundingClientRect とは異なり、メインフレームを基準としたバウンディングボックスを返します。

ページが静的であると仮定すると、バウンディングボックスの座標を使用して入力を実行しても安全です。たとえば、次のスニペットは要素の中央をクリックします。


check

Added in: v1.14 locator.check

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

使用例

page.getByRole(AriaRole.CHECKBOX).check();

引数

  • options Locator.CheckOptions (optional)
    • setForce boolean (optional)#

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

    • setNoWaitAfter boolean (optional)#

      非推奨

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

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

    • setPosition Position (optional)#

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

    • setTimeout double (optional)#

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

    • setTrial boolean (optional)#

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

戻り値

詳細

次の手順を実行します

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

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

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


clear

Added in: v1.28 locator.clear

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

使用例

page.getByRole(AriaRole.TEXTBOX).clear();

引数

  • options Locator.ClearOptions (optional)
    • setForce boolean (optional)#

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

    • setNoWaitAfter boolean (optional)#

      非推奨

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

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

    • setTimeout double (optional)#

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

戻り値

詳細

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

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


click

Added in: v1.14 locator.click

要素をクリックします。

使用例

ボタンをクリック

page.getByRole(AriaRole.BUTTON).click();

キャンバス上の特定の位置を Shift+右クリック

page.locator("canvas").click(new Locator.ClickOptions()
.setButton(MouseButton.RIGHT)
.setModifiers(Arrays.asList(KeyboardModifier.SHIFT))
.setPosition(23, 32));

引数

  • options Locator.ClickOptions (optional)
    • setButton enum MouseButton { LEFT, RIGHT, MIDDLE } (optional)#

      デフォルトは left です。

    • setClickCount int (optional)#

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

    • setDelay double (optional)#

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

    • setForce boolean (optional)#

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

    • setModifiers List<enum KeyboardModifier { ALT, CONTROL, CONTROLORMETA, META, SHIFT }> (optional)#

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

    • setNoWaitAfter boolean (optional)#

      非推奨

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

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

    • setPosition Position (optional)#

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

    • setTimeout double (optional)#

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

    • setTrial boolean (optional)#

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

戻り値

詳細

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

  1. setForce オプションが設定されていない限り、要素の アクション可能性 チェックを待ちます。
  2. 必要に応じて、要素をビューにスクロールします。
  3. Page.mouse() を使用して、要素の中央、または指定された setPosition をクリックします。
  4. setNoWaitAfter オプションが設定されていない限り、開始されたナビゲーションが成功または失敗するのを待ちます。

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

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


contentFrame

Added in: v1.43 locator.contentFrame

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

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

逆の操作には、FrameLocator.owner() を使用します。

使用例

Locator locator = page.locator("iframe[name=\"embedded\"]");
// ...
FrameLocator frameLocator = locator.contentFrame();
frameLocator.getByRole(AriaRole.BUTTON).click();

戻り値


count

Added in: v1.14 locator.count

Locator に一致する要素の数を返します。

count のアサート

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

使用例

int count = page.getByRole(AriaRole.LISTITEM).count();

戻り値


dblclick

Added in: v1.14 locator.dblclick

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

使用例

Locator.dblclick();
Locator.dblclick(options);

引数

  • options Locator.DblclickOptions (optional)
    • setButton enum MouseButton { LEFT, RIGHT, MIDDLE } (optional)#

      デフォルトは left です。

    • setDelay double (optional)#

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

    • setForce boolean (optional)#

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

    • setModifiers List<enum KeyboardModifier { ALT, CONTROL, CONTROLORMETA, META, SHIFT }> (optional)#

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

    • setNoWaitAfter boolean (optional)#

      非推奨

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

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

    • setPosition Position (optional)#

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

    • setTimeout double (optional)#

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

    • setTrial boolean (optional)#

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

戻り値

詳細

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

  1. setForce オプションが設定されていない限り、要素の アクション可能性 チェックを待ちます。
  2. 必要に応じて、要素をビューにスクロールします。
  3. Page.mouse() を使用して、要素の中央、または指定された setPosition をダブルクリックします。

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

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

note

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


dispatchEvent

Added in: v1.14 locator.dispatchEvent

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

使用例

locator.dispatchEvent("click");

引数

  • type String#

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

  • eventInit EvaluationArgument (optional)#

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

  • options Locator.DispatchEventOptions (optional)

    • setTimeout double (optional)#

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

戻り値

詳細

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

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

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

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

JSHandle dataTransfer = page.evaluateHandle("() => new DataTransfer()");
Map<String, Object> arg = new HashMap<>();
arg.put("dataTransfer", dataTransfer);
locator.dispatchEvent("dragstart", arg);

dragTo

Added in: v1.18 locator.dragTo

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

使用例

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

source.dragTo(target);
// or specify exact positions relative to the top-left corners of the elements:
source.dragTo(target, new Locator.DragToOptions()
.setSourcePosition(34, 7).setTargetPosition(10, 20));

引数

  • target Locator#

    ドラッグ先の要素のLocator。

  • options Locator.DragToOptions (オプション)

    • setForce boolean (オプション)#

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

    • setNoWaitAfter boolean (オプション)#

      非推奨

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

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

    • setSourcePosition SourcePosition (オプション)#

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

    • setTargetPosition TargetPosition (オプション)#

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

    • setTimeout double (オプション)#

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

    • setTrial boolean (オプション)#

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

戻り値

詳細

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


evaluate

Added in: v1.14 locator.evaluate

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

使用例

引数

  • expression String#

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

  • arg EvaluationArgument (オプション)#

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

  • options Locator.EvaluateOptions (オプション)

    • setTimeout double (オプション)#

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

戻り値

詳細

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

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

expressionがスローまたはリジェクトする場合、このメソッドはスローします。


evaluateAll

Added in: v1.14 locator.evaluateAll

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

使用例

Locator locator = page.locator("div");
boolean moreThanTen = (boolean) locator.evaluateAll("(divs, min) => divs.length > min", 10);

引数

  • expression String#

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

  • arg EvaluationArgument (オプション)#

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

戻り値

詳細

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

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

expressionがスローまたはリジェクトする場合、このメソッドはスローします。


evaluateHandle

Added in: v1.14 locator.evaluateHandle

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

使用例

Locator.evaluateHandle(expression);
Locator.evaluateHandle(expression, arg, options);

引数

  • expression String#

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

  • arg EvaluationArgument (オプション)#

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

  • options Locator.EvaluateHandleOptions (オプション)

    • setTimeout double (オプション)#

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

戻り値

詳細

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

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

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

expressionがスローまたはリジェクトする場合、このメソッドはスローします。

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


fill

Added in: v1.14 locator.fill

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

使用例

page.getByRole(AriaRole.TEXTBOX).fill("example value");

引数

  • value String#

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

  • options Locator.FillOptions (オプション)

    • setForce boolean (オプション)#

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

    • setNoWaitAfter boolean (オプション)#

      非推奨

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

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

    • setTimeout double (オプション)#

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

戻り値

詳細

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

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

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


filter

追加: v1.22 locator.filter

このメソッドは、オプションに従って既存のLocatorを絞り込みます。たとえば、テキストでフィルタリングします。複数回フィルタリングするためにチェーンできます。

使用例

Locator rowLocator = page.locator("tr");
// ...
rowLocator
.filter(new Locator.FilterOptions().setHasText("text in column 1"))
.filter(new Locator.FilterOptions().setHas(
page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("column 2 button"))
))
.screenshot();

引数

  • options Locator.FilterOptions (オプション)
    • setHas Locator (オプション)#

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

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

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

    • setHasNot Locator (オプション)追加: v1.33#

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

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

    • setHasNotText String | Pattern (オプション)追加: v1.33#

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

    • setHasText String | Pattern (オプション)#

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

    • setVisible boolean (オプション)追加: v1.51#

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

戻り値


first

Added in: v1.14 locator.first

最初の一致要素へのLocatorを返します。

使用例

Locator.first();

戻り値


focus

Added in: v1.14 locator.focus

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

使用例

Locator.focus();
Locator.focus(options);

引数

  • options Locator.FocusOptions (オプション)
    • setTimeout double (オプション)#

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

戻り値


frameLocator

追加: v1.17 locator.frameLocator

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

使用例

Locator locator = page.frameLocator("iframe").getByText("Submit");
locator.click();

引数

  • selector String#

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

戻り値


getAttribute

Added in: v1.14 locator.getAttribute

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

属性のアサーション

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

使用例

Locator.getAttribute(name);
Locator.getAttribute(name, options);

引数

  • name String#

    値を取得する属性名。

  • options Locator.GetAttributeOptions (オプション)

    • setTimeout double (オプション)#

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

戻り値


getByAltText

追加: v1.27 locator.getByAltText

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

使用例

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

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

引数

  • text String | Pattern#

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

  • options Locator.GetByAltTextOptions (オプション)

    • setExact boolean (オプション)#

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

戻り値


getByLabel

追加: v1.27 locator.getByLabel

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

使用例

たとえば、このメソッドは次のDOMでラベル「Username」と「Password」で入力を検索します。

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

引数

  • text String | Pattern#

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

  • options Locator.GetByLabelOptions (オプション)

    • setExact boolean (オプション)#

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

戻り値


getByPlaceholder

追加: v1.27 locator.getByPlaceholder

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

使用例

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

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

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

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

引数

  • text String | Pattern#

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

  • options Locator.GetByPlaceholderOptions (オプション)

    • setExact boolean (オプション)#

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

戻り値


getByRole

追加: v1.27 locator.getByRole

ARIA roleARIA属性、およびアクセシブル名で要素を特定できます。

使用例

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

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

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

assertThat(page
.getByRole(AriaRole.HEADING,
new Page.GetByRoleOptions().setName("Sign up")))
.isVisible();

page.getByRole(AriaRole.CHECKBOX,
new Page.GetByRoleOptions().setName("Subscribe"))
.check();

page.getByRole(AriaRole.BUTTON,
new Page.GetByRoleOptions().setName(
Pattern.compile("submit", Pattern.CASE_INSENSITIVE)))
.click();

引数

  • role enum AriaRole { ALERT, ALERTDIALOG, APPLICATION, ARTICLE, BANNER, BLOCKQUOTE, BUTTON, CAPTION, CELL, CHECKBOX, CODE, COLUMNHEADER, COMBOBOX, COMPLEMENTARY, CONTENTINFO, DEFINITION, DELETION, DIALOG, DIRECTORY, DOCUMENT, EMPHASIS, FEED, FIGURE, FORM, GENERIC, GRID, GRIDCELL, GROUP, HEADING, IMG, INSERTION, LINK, LIST, LISTBOX, LISTITEM, LOG, MAIN, MARQUEE, MATH, METER, MENU, MENUBAR, MENUITEM, MENUITEMCHECKBOX, MENUITEMRADIO, NAVIGATION, NONE, NOTE, OPTION, PARAGRAPH, PRESENTATION, PROGRESSBAR, RADIO, RADIOGROUP, REGION, ROW, ROWGROUP, ROWHEADER, SCROLLBAR, SEARCH, SEARCHBOX, SEPARATOR, SLIDER, SPINBUTTON, STATUS, STRONG, SUBSCRIPT, SUPERSCRIPT, SWITCH, TAB, TABLE, TABLIST, TABPANEL, TERM, TEXTBOX, TIME, TIMER, TOOLBAR, TOOLTIP, TREE, TREEGRID, TREEITEM }#

    必須のariaロール。

  • options Locator.GetByRoleOptions (オプション)

    • setChecked boolean (オプション)#

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

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

    • setDisabled boolean (オプション)#

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

      note

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

    • setExact boolean (オプション)Added in: v1.28#

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

    • setExpanded boolean (オプション)#

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

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

    • setIncludeHidden boolean (オプション)#

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

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

    • setLevel int (オプション)#

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

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

    • setName String | Pattern (オプション)#

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

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

    • setPressed boolean (オプション)#

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

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

    • setSelected boolean (オプション)#

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

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

戻り値

詳細

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

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


getByTestId

追加: v1.27 locator.getByTestId

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

使用例

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

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

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

page.getByTestId("directions").click();

引数

戻り値

詳細

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


getByText

追加: v1.27 locator.getByText

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

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

使用例

次のDOM構造を検討してください

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

テキストのサブストリング、完全一致文字列、または正規表現で特定できます

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

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

// Matches second <div>
page.getByText("Hello", new Page.GetByTextOptions().setExact(true));

// Matches both <div>s
page.getByText(Pattern.compile("Hello"));

// Matches second <div>
page.getByText(Pattern.compile("^hello$", Pattern.CASE_INSENSITIVE));

引数

  • text String | Pattern#

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

  • options Locator.GetByTextOptions (optional)

    • setExact boolean (optional)#

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

戻り値

詳細

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

button および submit タイプの input 要素は、テキストコンテンツの代わりに value でマッチングされます。例えば、テキスト "Log in" での特定は、<input type=button value="Log in"> にマッチングします。


getByTitle

追加: v1.27 locator.getByTitle

title属性によって要素を特定できます。

使用例

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

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

タイトルのテキストで特定した後、issueの数をチェックできます

assertThat(page.getByTitle("Issues count")).hasText("25 issues");

引数

  • text String | Pattern#

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

  • options Locator.GetByTitleOptions (optional)

    • setExact boolean (optional)#

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

戻り値


highlight

Added in: v1.20 locator.highlight

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

使用例

Locator.highlight();

戻り値


hover

Added in: v1.14 locator.hover

一致する要素の上にマウスカーソルを合わせます。

使用例

page.getByRole(AriaRole.LINK).hover();

引数

  • options Locator.HoverOptions (optional)
    • setForce boolean (optional)#

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

    • setModifiers List<enum KeyboardModifier { ALT, CONTROL, CONTROLORMETA, META, SHIFT }> (optional)#

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

    • setNoWaitAfter boolean (optional)Added in: v1.28#

      非推奨

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

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

    • setPosition Position (optional)#

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

    • setTimeout double (optional)#

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

    • setTrial boolean (optional)#

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

戻り値

詳細

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

  1. setForceオプションが設定されていない限り、要素のactionabilityチェックを待ちます。
  2. 必要に応じて、要素をビューにスクロールします。
  3. Page.mouse()を使用して、要素の中央、または指定されたsetPositionにカーソルを合わせます。

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

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


innerHTML

Added in: v1.14 locator.innerHTML

element.innerHTMLを返します。

使用例

Locator.innerHTML();
Locator.innerHTML(options);

引数

  • options Locator.InnerHTMLOptions (optional)
    • setTimeout double (optional)#

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

戻り値


innerText

Added in: v1.14 locator.innerText

element.innerTextを返します。

テキストのアサート

ページ上のテキストをアサートする必要がある場合は、不安定さを避けるために、setUseInnerText オプション付きの assertThat(locator).hasText() を推奨します。詳細については、アサーションガイドを参照してください。

使用例

Locator.innerText();
Locator.innerText(options);

引数

  • options Locator.InnerTextOptions (optional)
    • setTimeout double (optional)#

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

戻り値


inputValue

Added in: v1.14 locator.inputValue

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

値のアサート

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

使用例

String value = page.getByRole(AriaRole.TEXTBOX).inputValue();

引数

  • options Locator.InputValueOptions (optional)
    • setTimeout double (optional)#

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

戻り値

詳細

input、textarea、またはselectではない要素をスローします。ただし、要素が関連するcontrolを持つ<label>要素内にある場合、controlの値を返します。


isChecked

Added in: v1.14 locator.isChecked

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

チェック状態のアサート

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

使用例

boolean checked = page.getByRole(AriaRole.CHECKBOX).isChecked();

引数

  • options Locator.IsCheckedOptions (optional)
    • setTimeout double (optional)#

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

戻り値


isDisabled

Added in: v1.14 locator.isDisabled

要素が無効になっているかどうかを返します。enabledの反対です。

無効状態のアサート

要素が無効になっていることをアサートする必要がある場合は、不安定さを避けるためにassertThat(locator).isDisabled()を推奨します。詳細については、アサーションガイドを参照してください。

使用例

boolean disabled = page.getByRole(AriaRole.BUTTON).isDisabled();

引数

  • options Locator.IsDisabledOptions (optional)
    • setTimeout double (optional)#

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

戻り値


isEditable

Added in: v1.14 locator.isEditable

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

編集可能状態のアサート

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

使用例

boolean editable = page.getByRole(AriaRole.TEXTBOX).isEditable();

引数

  • options Locator.IsEditableOptions (optional)
    • setTimeout double (optional)#

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

戻り値


isEnabled

Added in: v1.14 locator.isEnabled

要素が有効になっているかどうかを返します。

有効状態のアサート

要素が有効になっていることをアサートする必要がある場合は、不安定さを避けるためにassertThat(locator).isEnabled()を推奨します。詳細については、アサーションガイドを参照してください。

使用例

boolean enabled = page.getByRole(AriaRole.BUTTON).isEnabled();

引数

  • options Locator.IsEnabledOptions (optional)
    • setTimeout double (optional)#

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

戻り値


isHidden

Added in: v1.14 locator.isHidden

要素が非表示になっているかどうかを返します。visibleの反対です。

可視性のアサート

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

使用例

boolean hidden = page.getByRole(AriaRole.BUTTON).isHidden();

引数

  • options Locator.IsHiddenOptions (optional)
    • setTimeout double (optional)#

      非推奨

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

戻り値


isVisible

Added in: v1.14 locator.isVisible

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

可視性のアサート

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

使用例

boolean visible = page.getByRole(AriaRole.BUTTON).isVisible();

引数

  • options Locator.IsVisibleOptions (optional)
    • setTimeout double (optional)#

      非推奨

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

戻り値


last

Added in: v1.14 locator.last

最後に一致する要素へのlocatorを返します。

使用例

Locator banana = page.getByRole(AriaRole.LISTITEM).last();

戻り値


locator

Added in: v1.14 locator.locator

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

Locator についてさらに詳しく学ぶ.

使用例

Locator.locator(selectorOrLocator);
Locator.locator(selectorOrLocator, options);

引数

  • selectorOrLocator String | Locator#

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

  • options Locator.LocatorOptions (optional)

    • setHas Locator (optional)#

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

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

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

    • setHasNot Locator (オプション)追加: v1.33#

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

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

    • setHasNotText String | Pattern (オプション)追加: v1.33#

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

    • setHasText String | Pattern (optional)#

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

戻り値


nth

Added in: v1.14 locator.nth

n番目に一致する要素へのlocatorを返します。ゼロベースであり、nth(0)は最初の要素を選択します。

使用例

Locator banana = page.getByRole(AriaRole.LISTITEM).nth(2);

引数

戻り値


or

追加: v1.33 locator.or

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

両方のlocatorが何かに一致する場合、結果のlocatorには複数のマッチングがあり、locator strictness違反を引き起こす可能性があることに注意してください。

使用例

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

note

「新しいメール」ボタンとセキュリティダイアログの両方が画面に表示される場合、「or」locatorは両方に一致し、"strict mode violation" errorをスローする可能性があります。この場合、Locator.first()を使用して、それらのうちの1つだけを一致させることができます。

Locator newEmail = page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("New"));
Locator dialog = page.getByText("Confirm security settings");
assertThat(newEmail.or(dialog).first()).isVisible();
if (dialog.isVisible())
page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("Dismiss")).click();
newEmail.click();

引数

  • locator Locator#

    一致させる代替locator。

戻り値


page

Added in: v1.19 locator.page

このlocatorが属するページ。

使用例

Locator.page();

戻り値


press

Added in: v1.14 locator.press

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

使用例

page.getByRole(AriaRole.TEXTBOX).press("Backspace");

引数

  • key String#

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

  • options Locator.PressOptions (optional)

    • setDelay double (optional)#

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

    • setNoWaitAfter boolean (optional)#

      非推奨

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

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

    • setTimeout double (optional)#

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

戻り値

詳細

要素にフォーカスし、Keyboard.down() および Keyboard.up() を使用します。

key は、意図された keyboardEvent.key 値、またはテキストを生成する単一の文字を指定できます。key 値のスーパーセットは、こちらにあります。キーの例は次のとおりです。

F1 - F12Digit0- Digit9KeyA- KeyZBackquoteMinusEqualBackslashBackspaceTabDeleteEscapeArrowDownEndEnterHomeInsertPageDownPageUpArrowRightArrowUp など。

次の修飾子のショートカットもサポートされています:ShiftControlAltMetaShiftLeftControlOrMetaControlOrMeta は、Windows および Linux では Control に、macOS では Meta に解決されます。

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

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

key: "Control+o"key: "Control++ または key: "Control+Shift+T" などのショートカットもサポートされています。修飾子付きで指定すると、修飾子が押され、後続のキーが押されている間保持されます。


pressSequentially

Added in: v1.38 locator.pressSequentially
ヒント

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

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

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

使用例

locator.pressSequentially("Hello"); // Types instantly
locator.pressSequentially("World", new Locator.pressSequentiallyOptions().setDelay(100)); // Types slower, like a user

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

Locator locator = page.getByLabel("Password");
locator.pressSequentially("my password");
locator.press("Enter");

引数

  • text String#

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

  • options Locator.PressSequentiallyOptions (optional)

    • setDelay double (optional)#

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

    • setNoWaitAfter boolean (optional)#

      非推奨

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

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

    • setTimeout double (optional)#

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

戻り値


screenshot

Added in: v1.14 locator.screenshot

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

使用例

page.getByRole(AriaRole.LINK).screenshot();

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

page.getByRole(AriaRole.LINK).screenshot(new Locator.ScreenshotOptions()
.setAnimations(ScreenshotAnimations.DISABLED)
.setPath(Paths.get("example.png")));

引数

  • options Locator.ScreenshotOptions (optional)
    • setAnimations enum ScreenshotAnimations { DISABLED, ALLOW } (optional)#

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

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

      デフォルトは、アニメーションをそのままにする "allow" です。

    • setCaret enum ScreenshotCaret { HIDE, INITIAL } (optional)#

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

    • setMask List<Locator> (optional)#

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

    • setMaskColor String (optional)Added in: v1.35#

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

    • setOmitBackground boolean (optional)#

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

    • setPath Path (optional)#

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

    • setQuality int (optional)#

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

    • setScale enum ScreenshotScale { CSS, DEVICE } (optional)#

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

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

    • setStyle String (optional)Added in: v1.41#

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

    • setTimeout double (オプション)#

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

    • setType enum ScreenshotType { PNG, JPEG } (オプション)#

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

戻り値

詳細

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

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

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


scrollIntoViewIfNeeded

Added in: v1.14 locator.scrollIntoViewIfNeeded

このメソッドは、実行可能性チェックを待ってから、IntersectionObserverratio で定義されているように完全に表示されていない限り、要素をビューにスクロールしようとします。

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

使用例

Locator.scrollIntoViewIfNeeded();
Locator.scrollIntoViewIfNeeded(options);

引数

  • options Locator.ScrollIntoViewIfNeededOptions (オプション)
    • setTimeout double (オプション)#

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

戻り値


selectOption

Added in: v1.14 locator.selectOption

<select> 内のオプションを 1 つまたは複数選択します。

使用例

<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.selectOption("blue");
// single selection matching the label
element.selectOption(new SelectOption().setLabel("Blue"));
// multiple selection for blue, red and second option
element.selectOption(new String[] {"red", "green", "blue"});

引数

  • values null | String | ElementHandle | String[] | SelectOption | ElementHandle[] | SelectOption[]#
    • setValue String (オプション)

      option.value で一致させます。オプション。

    • setLabel String (オプション)

      option.label で一致させます。オプション。

    • setIndex int (オプション)

      インデックスで一致させます。オプション。

    選択するオプション。 <select>multiple 属性がある場合、一致するすべてのオプションが選択されます。それ以外の場合は、渡されたオプションのいずれかに一致する最初のオプションのみが選択されます。文字列値は、値とラベルの両方に一致します。指定されたすべてのプロパティが一致する場合、オプションは一致すると見なされます。
  • options Locator.SelectOptionOptions (オプション)
    • setForce boolean (オプション)#

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

    • setNoWaitAfter boolean (オプション)#

      非推奨

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

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

    • setTimeout double (オプション)#

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

戻り値

詳細

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

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

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

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


selectText

Added in: v1.14 locator.selectText

このメソッドは、実行可能性チェックを待ってから、要素にフォーカスを当て、そのすべてのテキストコンテンツを選択します。

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

使用例

Locator.selectText();
Locator.selectText(options);

引数

  • options Locator.SelectTextOptions (オプション)

戻り値


setChecked

追加バージョン: v1.15 locator.setChecked

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

使用例

page.getByRole(AriaRole.CHECKBOX).setChecked(true);

引数

  • checked boolean#

    チェックボックスをオンにするかオフにするか。

  • options Locator.SetCheckedOptions (オプション)

    • setForce boolean (オプション)#

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

    • setNoWaitAfter boolean (オプション)#

      非推奨

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

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

    • setPosition Position (オプション)#

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

    • setTimeout double (オプション)#

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

    • setTrial boolean (オプション)#

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

戻り値

詳細

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

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

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


setInputFiles

Added in: v1.14 locator.setInputFiles

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

使用例

// Select one file
page.getByLabel("Upload file").setInputFiles(Paths.get("myfile.pdf"));

// Select multiple files
page.getByLabel("Upload files").setInputFiles(new Path[] {Paths.get("file1.txt"), Paths.get("file2.txt")});

// Select a directory
page.getByLabel("Upload directory").setInputFiles(Paths.get("mydir"));

// Remove all the selected files
page.getByLabel("Upload file").setInputFiles(new Path[0]);

// Upload buffer from memory
page.getByLabel("Upload file").setInputFiles(new FilePayload(
"file.txt", "text/plain", "this is test".getBytes(StandardCharsets.UTF_8)));

引数

  • files Path | Path[] | FilePayload | FilePayload[]#
    • setName String

      ファイル名

    • setMimeType String

      ファイルタイプ

    • setBuffer byte[]

      ファイルの内容

  • options Locator.SetInputFilesOptions (オプション)
    • setNoWaitAfter boolean (オプション)#

      非推奨

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

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

    • setTimeout double (オプション)#

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

戻り値

詳細

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

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


tap

Added in: v1.14 locator.tap

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

使用例

Locator.tap();
Locator.tap(options);

引数

  • options Locator.TapOptions (オプション)
    • setForce boolean (オプション)#

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

    • setModifiers List<enum KeyboardModifier { ALT, CONTROL, CONTROLORMETA, META, SHIFT }> (オプション)#

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

    • setNoWaitAfter boolean (オプション)#

      非推奨

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

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

    • setPosition Position (オプション)#

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

    • setTimeout double (オプション)#

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

    • setTrial boolean (オプション)#

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

戻り値

詳細

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

  1. setForce オプションが設定されていない限り、要素の実行可能性チェックを待機します。
  2. 必要に応じて、要素をビューにスクロールします。
  3. Page.touchscreen() を使用して、要素の中心または指定された setPosition をタップします。

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

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

note

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


textContent

Added in: v1.14 locator.textContent

node.textContent を返します。

テキストのアサート

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

使用例

Locator.textContent();
Locator.textContent(options);

引数

  • options Locator.TextContentOptions (オプション)
    • setTimeout double (オプション)#

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

戻り値


uncheck

Added in: v1.14 locator.uncheck

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

使用例

page.getByRole(AriaRole.CHECKBOX).uncheck();

引数

  • options Locator.UncheckOptions (オプション)
    • setForce boolean (オプション)#

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

    • setNoWaitAfter boolean (オプション)#

      非推奨

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

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

    • setPosition Position (オプション)#

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

    • setTimeout double (オプション)#

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

    • setTrial boolean (オプション)#

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

戻り値

詳細

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

  1. 要素がチェックボックスまたはラジオ入力であることを確認します。そうでない場合、このメソッドは例外をスローします。要素がすでにオフになっている場合、このメソッドはすぐに戻ります。
  2. setForce オプションが設定されていない限り、要素の実行可能性チェックを待機します。
  3. 必要に応じて、要素をビューにスクロールします。
  4. Page.mouse() を使用して、要素の中央をクリックします。
  5. 要素がチェック解除されたことを確認します。そうでない場合、このメソッドは例外をスローします。

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

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


waitFor

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

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

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

使用例

Locator orderSent = page.locator("#order-sent");
orderSent.waitFor();

引数

  • options Locator.WaitForOptions (オプション)
    • setState enum WaitForSelectorState { ATTACHED, DETACHED, VISIBLE, HIDDEN } (オプション)#

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

      • 'attached' - 要素が DOM に存在するのを待ちます。
      • 'detached' - 要素が DOM に存在しなくなるのを待ちます。
      • 'visible' - 要素が空でないバウンディングボックスを持ち、visibility:hidden がないのを待ちます。コンテンツがない要素や display:none が設定されている要素は空のバウンディングボックスを持ち、表示されているとは見なされないことに注意してください。
      • 'hidden' - 要素が DOM から切り離されるか、空のバウンディングボックスを持つか、または visibility:hidden になるのを待ちます。これは 'visible' オプションの反対です。
    • setTimeout double (オプション)#

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

戻り値


非推奨

elementHandle

Added in: v1.14 locator.elementHandle
推奨されません

後者は本質的に競争状態になりやすいため、ElementHandle よりも Locator と Web アサーションを使用することを常に推奨します。

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

使用例

Locator.elementHandle();
Locator.elementHandle(options);

引数

  • options Locator.ElementHandleOptions (オプション)
    • setTimeout double (オプション)#

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

戻り値


elementHandles

Added in: v1.14 locator.elementHandles
推奨されません

後者は本質的に競争状態になりやすいため、ElementHandle よりも Locator と Web アサーションを使用することを常に推奨します。

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

使用例

Locator.elementHandles();

戻り値


type

Added in: v1.14 locator.type
非推奨

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

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

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

使用例

引数

  • text String#

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

  • options Locator.TypeOptions (オプション)

    • setDelay double (オプション)#

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

    • setNoWaitAfter boolean (オプション)#

      非推奨

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

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

    • setTimeout double (オプション)#

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

戻り値