モバイルまたはブラウザーのテストをトレーニングすると、mabl は実行時にテストが正しい要素を見つけられるよう、あなたが操作した要素に関する情報を収集します。ターゲットの要素がページ上の他の要素と非常によく似ている場合は、検索の設定を追加して、どの要素属性を最重要視するか、そして mabl がどのくらいの時間それを探すべきかを指定できます。
検索ステップの設定は、次のような状況で特に役立ちます。
- あなたのアプリケーションが正しい状態に到達するまでに長い時間がかかります
- mabl に特定の属性に基づいて要素を検索させ、その属性が見つかり次第すぐにテストを続行したい
- 指定した時間内にページ上に属性が存在しない場合、テストを失敗させたい。
レジリエントな検出ステップの設定方法を確認してください。
ステップに検索の設定を追加する
検索の設定にアクセスするには、mablトレーナーでモバイルまたはブラウザーのテストを起動します。設定したいテストのステップにカーソルを合わせ、検索の設定アイコンをクリックしてください。
設定された検索ステップの作成
ターゲット属性を選択
検索の設定 メニューには、対象の要素または祖先の「コンテナー」要素に関連付けられた属性が表示されます。要素を一意に識別できる属性を選択してください。

ステップの属性の選択
一般的なガイドラインとして、安定していて一意な属性を一つか二つ選びましょう。どの属性を選ぶべきか迷ったら、複雑な要素をターゲットにするための推奨事項を参照してください。
タイムアウトを設定する
属性を選択したら、タイムアウトを設定します。タイムアウトは、mabl が自動修復を行うか、そのステップが失敗するまで待機する最大時間を決めます。デフォルトのタイムアウトは15秒、サポートされる最大タイムアウトは15分です。
読み込みが遅い要素には、より長いタイムアウトを使用してください。検索の設定のタイムアウトはstatic waitsより推奨されます。動的に動作し、最大の検索の設定のタイムアウトに達していなくても、正しい要素が見つかった時点で mabl がステップを完了するためです。
自動修復の設定を選択(ブラウザ テストのみ)
ブラウザーテストでは、タイムアウトに達して一致が見つからない場合に、mabl をどのように進行させるかを選択できます。
- 自動修復を無効化(既定の動作):mabl が検索の設定の属性すべてに一致する要素を見つけられない場合、そのステップは失敗します。
- 自動修復:mabl が検索の設定の属性すべてに一致する要素を見つけられない場合、検索のパラメータを拡張して、次に最適な要素候補を選択します。詳しくは、自動修復に関するガイドをご覧ください。

エレメントが見つからない場合のタイムアウトとアクションの指定
複雑な要素をターゲットにするための推奨事項
テストの実行中、mabl は選択した 検索の設定 の値にすべて一致する要素のみを考慮します。テストのステップが過度に制約されないように、安定していて一意な属性を一つか二つだけ選びましょう。
動的なクラス名や変動しやすいIDなど、極端に動的な属性の使用は避けてください。代わりに、次のような安定した属性を使って要素の検出を固定しましょう。
-
data-testid、data-qaのようなテストID -
role、aria-label、またはaria-labelledbyのようなアクセシビリティ属性 - 安定した属性で、
name、title、placeholder、またはinnerTextのように一意である限り
対象の要素に安定した一意の属性がない場合は、次のいずれかの方法を検討してください。
祖先要素を使って検索範囲を絞り込む
ターゲットの要素に安定して一意な属性がない場合は、Configure Find メニューで「コンテナー」要素として説明されている先祖の要素に検索範囲を絞り込む方法を試せます。先祖の要素の属性を使うとあいまいさを減らし、検索範囲を限定できます。これは、繰り返しのあるテーブル、モーダル、フォームなど、UI 構造が繰り返されるページで特に役立ちます。
たとえば、固有の属性を持たない削除アイコンのSVGをターゲットにする場合は、SVGの親要素に検索範囲を限定します。たとえば、一意の属性 data-test-id="delete-button" を持つ div のようにします。
動的な属性を取得するために変数を使う
ターゲットの要素に一意の属性があっても、実行のたびに変化する場合、検索で変数やパラメータの値を使うように設定できます。Configure Find メニューで、その属性にカーソルを合わせ、編集アイコンをクリックして、mabl の変数構文を使ったデータドリブン値を追加します: {{@varName}}。
検索の設定の属性を編集する
たとえば、待機タブのステップを設定して、URL に {{@productId}} の値を含む新しいタブを対象にできます。
データドリブンな検索の設定の作成
データ用テストIDの命名規約を定める
上記の提案でも解決しない場合は、重要な要素に対してデータテストIDの運用ルールを設けることを、チームの開発者と相談してください。データテストIDを追加すると、少ない手間でテストの信頼性を大きく高められます。