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

Locator

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

ロケーターの詳細.


メソッド

all

追加: v1.29 locator.all

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

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

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

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

使用法

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

戻り値


allInnerTexts

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

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

テキストのアサート

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

使用法

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

戻り値


allTextContents

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

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

テキストのアサート

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

使用法

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

戻り値


and

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

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

使用法

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

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

引数

  • locator Locator#

    一致する追加のロケーター。

戻り値


ariaSnapshot

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

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

使用法

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

引数

  • options Locator.AriaSnapshotOptions (任意)

戻り値

詳細

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

引数

  • options Locator.BlurOptions (任意)

戻り値


boundingBox

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

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

使用法

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

引数

  • options Locator.BoundingBoxOptions (任意)

戻り値

  • null | BoundingBox#
    • x double

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

    • y double

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

    • width double

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

    • height double

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

詳細

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

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

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


check

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

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

使用法

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

引数

  • options Locator.CheckOptions (任意)
    • 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 をスローします。タイムアウトをゼロにすると、これが無効になります。


clear

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

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

使用法

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

引数

  • options Locator.ClearOptions (任意)
    • setForce boolean (任意)#

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

    • setNoWaitAfter boolean (任意)#

      非推奨

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

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

    • setTimeout double (任意)#

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

戻り値

詳細

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

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


click

追加されたバージョン: 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 (任意)
    • setButton enum MouseButton { LEFT, RIGHT, MIDDLE } (任意)#

      デフォルトは left です。

    • setClickCount int (任意)#

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

    • setDelay double (任意)#

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

    • setForce boolean (任意)#

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

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

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

    • setNoWaitAfter boolean (任意)#

      非推奨

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

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

    • setPosition Position (任意)#

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

    • setTimeout double (任意)#

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

    • setTrial boolean (任意)#

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

戻り値

詳細

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

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

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

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


contentFrame

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

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

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

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

使用法

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

戻り値


count

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

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

カウントのアサート

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

使用法

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

戻り値


dblclick

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

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

使用法

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

引数

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

      デフォルトは left です。

    • setDelay double (任意)#

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

    • 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. 要素の中心、または指定された setPosition をダブルクリックするには Page.mouse() を使用します。

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

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

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


describe

追加: v1.53 locator.describe

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

使用法

Locator button = page.getByTestId("btn-sub").describe("Subscribe button");
button.click();

引数

  • description String#

    ロケーターの説明。

戻り値


dispatchEvent

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

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

使用法

locator.dispatchEvent("click");

引数

  • type String#

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

  • eventInit EvaluationArgument (任意)#

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

  • options Locator.DispatchEventOptions (任意)

戻り値

詳細

上記のスニペットは、要素に対して 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

追加: 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#

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

  • options Locator.DragToOptions (任意)

    • setForce boolean (任意)#

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

    • setNoWaitAfter boolean (任意)#

      非推奨

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

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

    • setSourcePosition SourcePosition (任意)#

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

    • setTargetPosition TargetPosition (任意)#

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

    • setTimeout double (任意)#

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

    • setTrial boolean (任意)#

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

戻り値

詳細

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


evaluate

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

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

使用法

expression に引数を渡す

Object result = page.getByTestId("myId").evaluate("(element, [x, y]) => {\n" +
" return element.textContent + ' ' + x * y;\n" +
"}", Arrays.asList(7, 8));
System.out.println(result); // prints "myId text 56"

引数

  • expression String#

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

  • arg EvaluationArgument (任意)#

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

  • options Locator.EvaluateOptions (任意)

    • setTimeout double (任意)#

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

戻り値

詳細

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

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

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


evaluateAll

追加されたバージョン: 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

追加されたバージョン: 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 を渡します。

戻り値

詳細

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

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

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

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

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


fill

追加されたバージョン: 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 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 (任意)#

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

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

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

    • setHasNot Locator (任意)追加バージョン: v1.33#

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

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

    • setHasNotText String | Pattern (任意)追加バージョン: v1.33#

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

    • setHasText String | Pattern (任意)#

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

    • setVisible boolean (任意)追加バージョン: v1.51#

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

戻り値


first

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

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

使用法

Locator.first();

戻り値


focus

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

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

使用法

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

引数

  • options Locator.FocusOptions (任意)

戻り値


frameLocator

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

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

使用法

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

引数

  • selector String#

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

戻り値


getAttribute

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

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

属性のアサート

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

使用法

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

引数

  • name String#

    値を取得する属性名。

  • options Locator.GetAttributeOptions (任意)

戻り値


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ロールARIA属性、およびアクセシブルネームで特定できます。

使用法

以下の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によって設定される属性。

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

    • setExact boolean (任意)追加バージョン: 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ガイドラインは、roleおよび/またはaria-*属性をデフォルト値に設定して暗黙的なロールと属性を重複させることを**推奨しません**。


getByTestId

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

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

使用法

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

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

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

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

引数

戻り値

詳細

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


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 (任意)

    • setExact boolean (任意)#

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

戻り値

詳細

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

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


getByTitle

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

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

使用法

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

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

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

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

引数

  • text String | Pattern#

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

  • options Locator.GetByTitleOptions (任意)

    • setExact boolean (任意)#

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

戻り値


highlight

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

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

使用法

Locator.highlight();

戻り値


hover

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

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

使用法

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

引数

  • options Locator.HoverOptions (任意)
    • setForce boolean (任意)#

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

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

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

    • setNoWaitAfter boolean (任意)追加バージョン: v1.28#

      非推奨

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

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

    • setPosition Position (任意)#

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

    • setTimeout double (任意)#

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

    • setTrial boolean (任意)#

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

戻り値

詳細

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

  1. setForce オプションが設定されていない限り、要素に対する アクション可能性 チェックを待ちます。
  2. 必要に応じて要素を表示するためにスクロールします。
  3. 要素の中心、または指定された setPosition にマウスを移動するには Page.mouse() を使用します。

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

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


innerHTML

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

element.innerHTML を返します。

使用法

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

引数

  • options Locator.InnerHTMLOptions (任意)

戻り値


innerText

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

element.innerText を返します。

テキストのアサート

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

使用法

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

引数

  • options Locator.InnerTextOptions (任意)

戻り値


inputValue

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

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

値のアサート

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

使用法

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

引数

  • options Locator.InputValueOptions (任意)

戻り値

詳細

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


isChecked

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

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

チェック状態のアサート

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

使用法

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

引数

  • options Locator.IsCheckedOptions (任意)

戻り値


isDisabled

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

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

無効状態のアサート

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

使用法

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

引数

  • options Locator.IsDisabledOptions (任意)

戻り値


isEditable

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

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

編集可能状態のアサート

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

使用法

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

引数

  • options Locator.IsEditableOptions (任意)

戻り値


isEnabled

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

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

有効状態のアサート

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

使用法

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

引数

  • options Locator.IsEnabledOptions (任意)

戻り値


isHidden

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

要素が非表示であるかどうかを返します。表示 の逆です。

可視性のアサート

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

使用法

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

引数

  • options Locator.IsHiddenOptions (任意)
    • setTimeout double (任意)#

      非推奨

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

戻り値


isVisible

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

要素が 表示 されているかどうかを返します。

可視性のアサート

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

使用法

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

引数

  • options Locator.IsVisibleOptions (任意)
    • setTimeout double (任意)#

      非推奨

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

戻り値


last

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

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

使用法

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

戻り値


locator

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

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

ロケーターの詳細.

使用法

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

引数

  • selectorOrLocator String | Locator#

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

  • options Locator.LocatorOptions (任意)

    • setHas Locator (任意)#

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

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

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

    • setHasNot Locator (任意)追加バージョン: v1.33#

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

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

    • setHasNotText String | Pattern (任意)追加バージョン: v1.33#

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

    • setHasText String | Pattern (任意)#

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

戻り値


nth

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

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

使用法

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

引数

戻り値


or

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

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

両方のロケーターが何かと一致する場合、結果のロケーターには複数の結果が含まれ、ロケーターの厳密性 違反を引き起こす可能性があることに注意してください。

使用法

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

"New email" ボタンとセキュリティダイアログの両方が画面に表示される場合、"or" ロケーターは両方と一致し、"strict mode violation" エラー をスローする可能性があります。この場合、Locator.first() を使用して、どちらか一方のみと一致させることができます。

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#

    一致する代替ロケーター。

戻り値


page

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

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

使用法

Locator.page();

戻り値


press

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

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

使用法

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

引数

  • key String#

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

  • options Locator.PressOptions (任意)

    • setDelay double (任意)#

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

    • setNoWaitAfter boolean (任意)#

      非推奨

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

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

    • setTimeout double (任意)#

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

戻り値

詳細

要素にフォーカスし、その後 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 キーを押し続けると、key に対応するテキストが大文字で入力されます。

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

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


pressSequentially

追加バージョン: 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 (任意)

    • setDelay double (任意)#

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

    • setNoWaitAfter boolean (任意)#

      非推奨

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

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

    • setTimeout double (任意)#

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

戻り値


screenshot

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

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

使用法

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

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

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

引数

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

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

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

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

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

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

    • setMask List<Locator> (任意)#

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

    • setMaskColor String (任意)追加されたバージョン: v1.35#

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

    • setOmitBackground boolean (任意)#

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

    • setPath Path (任意)#

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

    • setQuality int (任意)#

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

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

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

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

    • setStyle String (任意)追加日: v1.41#

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

    • setTimeout double (任意)#

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

    • setType enum ScreenshotType { PNG, JPEG } (任意)#

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

戻り値

詳細

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

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

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


scrollIntoViewIfNeeded

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

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

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

使用法

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

引数

  • options Locator.ScrollIntoViewIfNeededOptions (任意)

戻り値


selectOption

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

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

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

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


selectText

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

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

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

使用法

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

引数

戻り値


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

追加されたバージョン: 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要素を指していることを期待します。ただし、要素が関連付けられたコントロールを持つ<label>要素内にある場合は、代わりにそのコントロールをターゲットにします。


tap

追加されたバージョン: 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をスローします。タイムアウトにゼロを渡すと、この機能は無効になります。

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


textContent

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

node.textContentを返します。

テキストのアサート

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

使用法

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

引数

  • options Locator.TextContentOptions (任意)

戻り値


uncheck

追加されたバージョン: 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

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

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

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

使用法

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

引数

  • options Locator.ElementHandleOptions (任意)

戻り値


elementHandles

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

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

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

使用法

Locator.elementHandles();

戻り値


type

追加されたバージョン: 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() メソッドを使用して変更できます。

戻り値