要素の検索ステップで、XPath、CSS、Playwrightのロケーター構文に対応した単一のLocatorフィールドを使って要素を指定できるようになりました。更新されたFind elementsメニューには、いくつかの利点があります。
- よりシンプルなメニュー: セレクタータイプと序数の個別のコントロールに代わり、1つのLocatorフィールドを使用します。
- Playwrightのセレクターを再利用: すでにチームでPlaywrightを使ってテストしている場合は、mablでもまったく同じセレクター構文を使用できます。
-
序数の選択が容易に: Playwrightの
nth構文を使うと、一致する複数の要素のうち最初または最後の要素を簡単に指定できます。これは通常のCSSでは表現しにくい操作です。 - バックアップとしてのビジュアル検索: フォールバックとしてビジュアル検索を有効にすると、ロケーターだけでは要素を特定できない場合でもステップが解決されるため、ステップが壊れにくくなります。
仕組み
Locatorフィールドは、文字列として記述できるPlaywrightロケーターであれば何でも受け付けます。
-
CSSセレクターはそのまま使用できます:
button.add-to-cart -
XPathは
xpath=プレフィックスを付けて使用します:xpath=//button[@id='submit'] -
序数の選択には
nthを使用します: 最初の一致には>> nth=0を、最後の一致には>> nth=-1を追加します。 -
チェーンは
>>で1つのロケーターから次のロケーターへと絞り込みます:li:has-text("Product 2") >> button:has-text("Add to cart")
1点補足すると、Playwrightのドキュメントでは、page.getByRole('listitem').filter({ hasText: 'Product 2' })のように、コード内でロケーターをチェーンする例が主に示されています。mablでは、Locatorフィールドが単一の文字列値を受け取るため、同じチェーンを>>を使って文字列として表現します。
バックアップとしてビジュアル検索を設定する
要素の検索ステップでは、バックアップとしてビジュアル検索を有効にできます。実行中にロケーターだけでは要素を一意に特定できない場合、mablはビジュアル検索にフォールバックするため、アプリケーションのわずかな変更でステップが壊れる可能性が低くなります。
既存のテストはそのまま動作します
新しいLocatorフィールドは、最新バージョンのデスクトップアプリで利用できます。mablは既存の要素の検索ステップ内のロケーターを新しい形式に自動的に変換するため、現在のテストはこれまでどおり実行され続けます。