テスト実行時にエレメントを正しく見つけることは興味深い問題です。ページ上には動的コンテンツや類似のエレメントがいくつも存在することがあるため、テストで特定のアクションの背後にある意図を考慮することが一層重要になります。この記事では、ブラウザーテストで正しいエレメントをターゲットにするための戦略について説明します。
mablでの検索ステップの作成
検索ステップは、クリックやエレメントアサーションなどのエレメントを操作するステップです。エレメントを正しく見つけるため、mablでは、アプリケーションが正しい状態になっているかどうか、そのエレメントが選択された理由、およびエレメントに関連するコンテキストが重要なものかどうかを把握する必要があります。
mablでは、テストの作成時にエレメントを見つけるためのさまざまなオプションが利用できます。mablが正しいエレメントを操作できるようにするには、常に以下の順序でステップを作成します。
記録されたステップ
mablでエレメントを操作するステップを記録すると、mabl Trainerはエレメントの属性に関する情報を収集します。テストの実行時には、各候補に一致する属性の組み合わせと、そのエレメントおよび類似エレメントの検索履歴に基づいて、最も一致するエレメントが選択されます。
エレメントがページのHTMLの一部ではない場合、mabl Trainerではそのエレメントを操作できません。たとえば、mabl Trainerでは、Chrome DevToolsや印刷ダイアログなど、ローカルブラウザーまたはマシンの設定を操作することはできません。
設定された検索ステップ
記録された検索ステップが正しいエレメントをターゲットにしていない場合は、検索の設定 ([Configure Find]) を使用して重要度の高い属性を指定することができます。検索の設定を使用すると、そのステップの背後にある意図に基づいて検索ストラテジーを調整することができます。ターゲットエレメントの表示に時間がかかる場合は、タイムアウトを最長15分に設定して、mablがエレメントを検索する時間を定義できます。
記録されたステップと検索の設定を使用するステップによって検索の柔軟性が向上します。時間とともにアプリケーションが変化していったときに、一部の属性が変更された場合でも、mablでエレメントを正しく見つけられる可能性が高くなります。
カスタム検索ステップ
記録されたステップや検索の設定を使用して正しいエレメントをターゲットにすることができない場合は、CSSまたはXPathを使用してカスタム検索ステップを作成することができます。カスタム検索ステップでは、自動修復機能は使えません。
DevToolsからセレクターをコピーしないでください。DevToolsで生成されたセレクターは特殊であるため、アプリケーションに軽微な変更が加えられると簡単に失敗します。
JavaScript
記録されたステップ、検索の設定、カスタム検索のいずれでも正しいエレメントを操作できない場合は、トラブルシューティング手段としてJavaScriptを使用してエレメントの操作を試みることができます。
エレメントの見つけやすさの改善
mablの検索ストラテジーは、テスト対象アプリケーションに関して取得された情報に合わせて調整されます。属性の一貫性や一意性が高いほど、エレメントを見つけやすくするのに役立ちます。mablのオプションを使用して検索ステップを作成できない場合は、エレメントの見つけやすさを改善するため、次のいずれかの変更を行うことを開発者と相談してください。
役立つ属性を追加する
ARIAラベル、データテストID、またはテストIDなど、一貫性があり識別しやすい属性をターゲットエレメントに追加します。
先祖エレメントに属性を追加する
ターゲットエレメントが動的に生成された値を使用していて、ターゲットにすることが難しい場合は、先祖エレメントに属性を追加します。
セマンティックHTMLタグを使用する
アプリケーションが入れ子構造の数多くの<divs>
で構成されていて、他に役立つ属性が存在しない場合、mablで正しいエレメントをターゲットにすることがさらに難しくなります。<h1>
や<p>
などのセマンティックHTMLタグを使用すると、Webページ内での目的や役割に基づいてエレメントをターゲットにしやすくなります。