クラス名が頻繁に変更されるページのテスト

Maxymiserテストを作成し、ページ上のオブジェクトを変更する場合、Maxymiserはセレクタを使用してHTMLオブジェクトを検索し、セレクタはページのクラス名を使用することがしばしばあります。そのため、クラス名がリリース間で変更されると、Maxymiserテストの作成方法に影響します。

バリアントの作成

次に、サイトのリリース間でクラス名が変更された場合にページ上のオブジェクトを変更する方法の例を示します。ページ上のオブジェクトを視覚的に変更してから、コード・エディタでセレクタを手動で編集します。

ノート: すべての例で、一重引用符と二重引用符の使用に注意してください。

イメージを変更するには:

  1. イメージを視覚的に選択して、新しいイメージに置き換えます。
  2. コード・エディタを開いて、次のコードを変更します。
  3. spa.dom.changeImageBanner(".category-info > .image > .img-responsive", {
    imageUrl: "#$(ContentManager:DiscountBanner-1138-Copy.jpg)!"
    });

  4. クラス・セレクタに基づいてイメージを変更するかわりに、ページ上のイメージを識別する特定のテキストがsrc属性に含まれるイメージを変更します。
  5. ブラウザの検証機能を使用して、イメージの名前を検索します。
  6. 次の名前を含むイメージを検索するようにAPIコールを更新します: img-category3-873x270.jpg
  7. spa.dom.changeImageBanner("img[src*='img-category3-873x270.jpg']", {
    imageUrl: "#$(ContentManager:DiscountBanner-1138-Copy.jpg)!"
    });

イメージを削除するには:

  1. イメージを視覚的に選択して削除します。
  2. バリアントのコード・エディタを開いて、次のコードを変更します。
  3. spa.dom.remove(".category-info > .image > .img-responsive");

  4. クラス・セレクタに基づいてイメージを削除するかわりに、ページ上のイメージを識別する特定のテキストがsrc属性に含まれるイメージを削除します。
  5. ブラウザの検証機能を使用して、イメージの名前を検索します。
  6. APIコールを更新して、次の名前のイメージを削除します: img-category3-873x270.jpg
  7. spa.dom.remove("img[src*='img-category3-873x270.jpg']");

ページ上のテキストを変更するには:

  1. テキストを視覚的に選択し、テキストを編集します。
  2. バリアントのコード・エディタを開いて、次のコードを変更します。
  3. spa.dom.editHtml("#content > h1", "Children");

  4. APIコールを更新し、Kidsというテキストを含むh1ノードのコンテンツをChildrenに置き換えます。
  5. spa.dom.editHtml("h1:contains('Kids')", "Children");

リリース間で変更されないクラス名の使用

サイトのリリース間で変更されない名前、IDまたはその他の属性がサイトに存在する可能性があり、これらを使用できます。変更されない名前がないかどうかを開発者に確認します。

トリガーの作成

セレクタは、hasまたはcontains関数と組み合せることができます。詳細は、SPAのリファレンス・ドキュメントを参照してください。

特定の子孫を持つ要素を検索できます。たとえば、次のセレクタは、内部に特定のイメージを持つすべてのdivコンテナに対応しています。

"div:has(img[src*='img-category3-873x270.jpg'])"

プログレッシブWebアプリケーションのテスト

プログレッシブWebアプリケーション(PWA)では、PWAサイトをリリースするたびに一部のクラス名が変更される可能性があります。PWAサイトのリリース間でクラス名が変更されるかどうかは、開発者に確認する必要があります。

さらに学ぶ

シングル・ページ・アプリケーションWebサイトのテスト

クラス名, テスト, バリアントの作成, プログレッシブWebアプリケーション