一部のテストシナリオでは、次のテストステップを実行する前に追加の待機を設定することが望ましい場合があります。ブラウザとモバイルのテストでは、追加の待機を設定するための3つの方法があります:
ほとんどの場合、追加の待機を設定する方法として、Configure Findとwait untilステップの使用をお勧めします。これは、合計待機時間が動的であるためです。設定されたタイムアウトの前にアプリケーションの準備が整った場合、mablはこのステップを終了し、次のステップの実行に進みます。
それに対し、waitステップは常に一定時間待機します。waitステップは、テスト実行中のパフォーマンスの問題を切り分けたり、テストの特定の時点でページのスクリーンショットを取得したりするのに便利です。テストのフィードバックサイクルが長くなるため、原則としてwaitステップの使用はなるべく控えることをお勧めします。
この記事では、ブラウザまたはモバイルテストに3種類の待機を追加する方法について説明します。
インテリジェント待機
ブラウザーテストをクラウドで実行するとき、mablはページ上のエレメントを操作する前に、インテリジェント待機を使用してアプリケーションが正しい状態であることを確認します。ただし、必要に応じて追加の待機を設定することをお勧めします。
Configure Find
アサーションやクリックをはじめとするmablの検索アクションでは、ターゲットエレメントが表示されるまで最大30秒間の待機時間があります。アプリケーションでエレメントの表示に30秒以上かかる場合や、完全な形になる前にエレメントが生成される場合、Configure Findを使用できます。
Configure Findでは次の操作が可能です。
- mablで検索するエレメント属性を指定する
- mablによるエレメントの検索「時間」を定義するために、タイムアウトを設定する
Configured Findのタイムアウトの定義
Configure Findステップのデフォルトのタイムアウトは15秒ですが、ターゲットエレメントを見つけて操作するまでのタイムアウトを最長15分 (900秒) まで延ばすことができます。Configure Findの使用方法の詳細については、こちらのガイドを参照してください。
wait untilステップ
wait untilステップは、要素が指定の状態になるまで、最大秒数を「上限」として待機します。タイムアウトになる前に要素がその状態になった場合、mablは待機を終了し、次のステップに進みます。
wait untilステップには次の2種類があります。
- Wait until present: 要素がページに表示されるまで待機します。
- Wait until not present: 要素がページから消えるまで待機します。読み込み中のスピナー、オーバーレイ、トースト通知などが消えてからテストを続行する必要がある場合に使用します。
要素が表示されるまで待機する
Wait until presentステップは、一致する要素がページに表示されるまでテストを一時停止します。要素が表示される前に最大待機時間に達した場合、ステップは失敗します。検索結果、モーダル、テーブルの行など、読み込みが完了するまでテストを明示的に待機させる場合に使用します。
ステップを追加する方法は3つあります。ステップを追加する時点で要素が画面に表示されているかどうかに応じて使い分けてください。
- 要素が表示されていて、クリックできる場合: 新しいWait until presentステップを追加します: + (ステップを追加) > Wait > Add wait until。mablで待機する要素を選択し、mablでターゲットにする属性をオンにして、最大待機時間を900秒以内で設定し、一致する要素が見つからない場合にmablで自動修復を行うかどうかを指定します。
- ステップを追加する時点で要素がページに存在しない場合 (ブラウザテストのみ): 要素の検索ステップを追加します: + (ステップを追加) > 要素を検索。ロケーター フィールドにCSSセレクター、Playwrightのロケーター、またはXPath式を入力し、[アクション] に「Wait until present」を設定して、タイムアウトを設定します。
- 要素が表示されている間にクリックできる場合: 要素へのクリックを記録し、そのステップの3点メニューをクリックして [Wait until present] を選択します。タイムアウトは自動的に15秒に設定されますが、ステップを編集して変更できます。
要素が存在しなくなるまで待機する
Wait until not presentステップは、一致する要素がDOMから消えるまでテストを一時停止します。最大待機時間に達した時点で要素がまだ存在する場合、ステップは失敗します。要素が表示されるのを待つのではなく、要素が消えるのを待つ場合に使用します。たとえば、読み込み中のスピナーが完了するまで、オーバーレイが閉じるまで、またはトースト通知が消えて背後の要素を操作できるようになるまで待機する場合です。
ステップを追加する方法は3つあります。ステップを追加する時点で要素が画面に表示されているかどうかに応じて使い分けてください。
- 要素が表示されていて、クリックできる場合: 新しいWait until not presentステップを追加します: + (ステップを追加) > Wait > Add wait until not present。ステップの実行時に存在していないはずの要素を選択し、タイムアウトを設定します。
- ステップを追加する時点で要素がページに存在しない場合 (ブラウザテストのみ): 要素の検索ステップを追加します: + (ステップを追加) > 要素を検索。ロケーター フィールドにCSSセレクター、Playwrightのロケーター、またはXPath式を入力し、[アクション] に「Wait until not present」を設定して、タイムアウトを設定します。
- 要素が消える前にクリックできる場合: 要素へのクリックを記録し、そのステップの3点メニューをクリックして [Wait until not present] を選択します。タイムアウトは自動的に15秒に設定されますが、ステップを編集して変更できます。
非表示の要素
「not present」とは、要素が画面上に表示されていないことではなく、DOMに存在しないことを指します。要素がHTMLに残っていて、display、visibility、opacityなどの属性で非表示になっている場合は、存在するものとして扱われ、タイムアウトになるまで待機します。
waitステップ
waitステップは静的な待機とも呼ばれ、mablは一定時間待機してから次のステップに進みます。
mablトレーナーでwaitステップを挿入するには、次の手順を実行します。
- Trainerウィンドウの下部にあるプラスアイコン (+) をクリックして、ステップを追加します。
- [Wait > Add wait] をクリックします。
- 次のステップを実行するまでの待機時間 (秒数) を入力します。最大値は900秒です。
- [OK] をクリックしてステップを追加します。