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ステップをうまく活用することで、さらに柔軟なテストの実現が可能となります。このようなテクニックを駆使して、品質の高いテストオートメーションを構築しましょう。