対象要素が見つかりませんでした
  • 29 Aug 2024
  • 1 分で読めます
  • 投稿者
  • ダーク
    ライト

対象要素が見つかりませんでした

  • ダーク
    ライト

記事の要約

テスト実行中にAutifyが対象要素を見つけられなかった場合、テスト結果には以下のメッセージが表示されます。

Ja_ElementNotFound.png

「対象要素が見つかりませんでした。」は、テスト実行中の最も一般的なエラーの1つです。このページでは、このエラーの原因の例と、対応方法について紹介します。

このエラーには大きく2つの原因があります。まずは失敗したステップのスクリーンショットを確認し、以下どちらのケースに該当するかを確認します。

  • 対象要素がページに存在していない。
  • 対象要素がページに存在しているのに見つけられていない。

対象要素がページに存在していない場合

この場合は、まず対象要素が失敗したステップのタイミングに存在していなかった原因を突き止めることが必要です。以下のような原因が考えられますので、該当するものがないか確認してください。

失敗したステップより前のステップで意図しない操作になっている

失敗したステップより前のステップで、意図しない要素をクリックしていたり、フォームの入力でバリデーションエラーが発生し、画面遷移が発生するボタンのクリックに失敗していたりした影響で、意図した画面に遷移できていない場合は、原因となっているステップにて正しい操作ができるように対応してください。

例えばトライアル申込画面にメールアドレスを入力し、申込ボタンをクリック後、遷移した画面のメッセージをアサーションしたいとします。しかしトライアル申込画面では、有効なメールアドレスを入力しなければ、バリデーションエラーが表示されるため、ボタンをクリックした後に遷移するべきお礼メッセージの画面に遷移しません。

transition_failure

この結果、意図した画面に遷移していないため、以下スクリーンショットのステップ5のように、アサーションステップが「対象要素が見つかりませんでした。」のエラーで失敗しますが、問題となっているステップは誤ったメールアドレスを入力しているステップ3のため、ステップ3で正しいメールアドレスを入力するように修正する必要があります。

error-in-preceding-step

ホバーステップがない

見つからなかった要素が、マウスオーバーすることで表示される要素の場合、ホバーステップを追加することで問題が解決する可能性があります。詳しくは マウスオーバーで現れる要素の操作が失敗/要確認になってしてしまう をご覧ください。

タイムゾーンの影響

Autifyのテスト実行環境のタイムゾーンは、ワークスペースの設定に応じてUTCまたはJSTから選択できます。そのため、検索画面で検索条件に作成日時を指定して、検索結果が表示されるかを確認するテストなど日時が絡むテストで、ローカルでの手動実行では結果が表示されるのに、Autifyでテスト実行すると表示されないなど、ローカルとAutifyでテスト結果に差がある場合は、タイムゾーンの違いが影響している可能性があります。

ページの読み込み中

ページの読み込み中に要素の探索が行われていた場合は、失敗したステップの前に待機ステップを追加して、ページの読み込み完了を待ってください。

Autifyの要素探索

Autifyでは対象要素がページ内に存在しない場合は、一定時間探索し続けるように設計されています。そのため 一定時間内であれば待機ステップを使用する必要はありません。

他のテストの影響

例えば以下3つのシナリオがあるとします。

  1. アイテムを作成
  2. 検索画面でそのアイテムを検索し、アイテムが存在することを確認
  3. 作成したアイテムを削除する

このシナリオを全て成功させるには、実行する順番が重要です。2のシナリオの前に3のシナリオが実行されると、2のシナリオは対象要素が見つからず失敗してしまいます。

シナリオの実行順序は、ワークスペースの「テストの並列実行」の有効/無効や実行のしかた、データ機能利用の有無の組み合わせにより、影響を受けます。実行順序が原因で失敗していると考えられる場合は、こちらを参照してください。

対象要素がページに存在しているのに見つけられていない場合

スクリーンショットを確認し、要素がページにあるにも関わらず、「対象要素が見つかりませんでした。」と表示されている場合、考えられる原因としては以下のものがあります。

ページの改修があった

Autifyはページの改修などに伴って要素の特徴が前回のテスト実行時と完全には一致しなくなっても、最も一致度の高い要素に追従します。しかし、変更の内容によっては正しい要素に追従できない場合があります。

テスト結果の差分を確認し差分がある場合は、このケースにあてはまる可能性があります。その場合は以下のいずれかの方法で要素の情報を更新することで、テストが成功する可能性があります。

要素を特定する情報が少なかった

ページに差分がほとんどない、あるいは全くないにもかかわらず対象要素を見つけられなかった場合は、要素を特定する情報が少ない、あるいは類似の要素が存在しているなどの理由が考えられます。この場合はロケータの指定が有効です。

要素のテキストが動的だった

Autifyは要素探索時に、要素が持つテキストも一つの特徴として使用しています。そのため対象要素のテキストがレコーディング時と違う場合は、要素が見つからない可能性があります。このケースの対応方法については、要素が動的なデータを含む場合、どうすればテストを安定させられますか? を参照してください。

ロケータに設定したCSSセレクター / XPathが誤っていた

ロケータに設定したCSSセレクター / XPathで見つけられる要素がなかった場合、このエラーが発生します。設定したCSSセレクター / XPathで要素が取得できるか、こちらを参考に再度確認してください。

それでも問題が解決しない場合...

いつでもカスタマーサポートチームにご連絡ください。問題を解決するお手伝いをいたします。


この記事は役に立ちましたか?

Changing your password will log you out immediately. Use the new password to log back in.
First name must have atleast 2 characters. Numbers and special characters are not allowed.
Last name must have atleast 1 characters. Numbers and special characters are not allowed.
Enter a valid email
Enter a valid password
Your profile has been successfully updated.