日: 2023年8月24日

  • Autifyでの高度な待機処理: 非活性ボタンを活性化するまで

    はじめに

    テストオートメーションツール「Autify」は、非技術者でも簡単にWebアプリケーションのE2Eテストを構築・実行することができるツールです。しかしながら、特定の操作が完了するまで待機するといったシチュエーションでは、JavaScriptステップを利用することでより高度な制御が可能になります。

    今回は、あるボタンが非活性(disabled)から活性になるのを待つシチュエーションを例に、Autify内でのJavaScriptステップの作成方法を解説します。

    シチュエーション

    テストシナリオ内で、あるアクションの後、ボタンが活性化されるのを30秒間待ち、活性になったらその後のステップへ進むというシチュエーションを想定します。

    解決方法

    Autify内でJavaScriptステップを作成し、以下のスクリプトを利用します。

    var xpath = "/html/body/div[1]/div/div/div/div[1]/div/div[3]/div[2]/button";
    var element = document.evaluate(xpath, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
    if (!element) {
    throw new Error("Error: cannot find the element with xpath(" + xpath + ").");
    }
    var endTime = Date.now() + 30000;
    (function checkIfEnabled() {
    if (Date.now() > endTime) {
    throw new Error("Timeout: Button was not enabled within 30 seconds.");
    }
    if (!element.disabled) {
    return;
    } else {
    setTimeout(checkIfEnabled, 500);
    }
    })();

    まとめ

    Autifyは直感的なインターフェースでテストシナリオを組むことができますが、JavaScriptステップをうまく活用することで、さらに柔軟なテストの実現が可能となります。このようなテクニックを駆使して、品質の高いテストオートメーションを構築しましょう。