概要

Synthetic のブラウザテストで、モーダルやアプリケーションウィンドウなどのポップアップを管理する方法について説明します。

モーダル

JavaScript

Synthetic ブラウザテストは自動的に JavaScript モーダルを処理します。

  • alert モーダルは OK の場合は即座に却下されます。
  • Google Chrome または Microsoft Edge のテストでは、prompt モーダルが Lorem Ipsum で埋められます。
  • 確認を求める confirm モーダルは受け付けられます。

基本認証

基本認証ポップアップの場合、ブラウザテスト構成の Advanced Options で関連する資格情報を指定します。

基本認証ポップアップ

アプリケーションポップアップ

固定ポップアップ

ユーザージャーニーの特定の時点でポップアップが表示された場合、閉じるためのステップを記録し、対応するオプションを使いそのステップを失敗させることができます。それにより、テストはポップアップが表示された際の対応を学ぶことができます。ポップアップが表示されない場合、ステップは失敗しますが、テスト全体が失敗に終わることはありません。

ポップアップを処理するためにステップの失敗を許可する

ポップアップの移動

セッション中にポップアップが表示される時間を予測できない場合は、ブラウザテストの実行中にポップアップが表示されないようにするルールを作成してもらえないか、ポップアップを出すサードパーティーに確認してください。例えば、テストの Advanced Options セクションに挿入できるクッキーなどがあるかもしれません。

または、次のいずれかの方法でポップアップが閉じたままテストが続行できるようにします。

  • ブラウザテストの開始時に JavaScript アサーションを作成し、ポップアップを定期的に閉じるようにします。

    if (document.querySelector("<ELEMENT>")) {
      return true;
    } else {
      return new Promise((resolve, reject) => {
        const isPopupDisplayed = () => {
          if (document.querySelector("<ELEMENT>")) {
            clearInterval(popup);
            resolve(true);
          }
        };
        let popup = setInterval(isPopupDisplayed, 500);
      });
    }
    
  • ポップアップを閉じるためのステップを記録し、他のブラウザテストのステップの間に追加し、それぞれに対しこのステップの失敗を許可 オプションを選択します。

その他の参考資料

PREVIEWING: may/unit-testing