Guarded Choice(ガードチョイス)の特徴

フォローする

Guarded Choiceステップは、主にステップを実行する際の条件を指定するために使用します。
対象要素の存在を確認する際、エレメントツリーの生成を待機する際に使用されます。

Guarded Choiceステップには以下5種類のGuardがあります。

・When seconds have passed(特定の秒数が経過したとき)
・Tree Stops Changing(ツリー変更停止)
・Location Found(ロケーションが見つかった場合)
・Location Not Found(ロケーション見つからなかった場合)
・Location Removed(除去されたロケーション)

これらのGuardは設定した条件が満たされた時に通過し、後続のステップに進みます。
また、ひとつのGuarded Choiceステップに複数のGuardを設定することが可能です。

(この場合、一番最初に条件を満たしたGuardに分岐されます。)


本ナレッジでは、それぞれのGuardの条件や特徴を紹介いたします。

・When seconds have passed(特定の秒数が経過したとき)

Guard1.png

指定した秒数を待機するタイムアウトガードです。
DSのWait(待機)アクションと同様の機能です。

使用シーンの例は、実行した処理が完了するまで待機する際や、遷移後の画面の表示が完了するまで待機する際に使用します。
DSでは処理がバックグラウンドで実行されますが、DAはDASを経由して端末をリモート操作するため、
より手動で端末を操作する時と同じようにネットワークの状況や、実行した処理の完了を考慮する必要がございます。
そのため、適宜このGuardを使用して処理が完了するまでの待機時間を設けます。

Guard3.png

また、オートメーションデバイスビュー(Automation Device View)からClickステップやExtract Valueステップを追加すると、
Location Foundと共に60秒のWhen seconds have passedが付属します。
これはLocation Foundが対象要素を無制限に検出することを回避するためであり、
対象要素の検出に60秒以上かかった場合、Throwステップによって例外(TimeOutError)を発行します。

・Tree Stops Changing(ツリー変更停止)

Guard2.png

エレメントツリーの生成の完了後に、指定したミリ秒を待機するタイムアウトガードです。
使用シーンの例は、主に遷移した画面のエレメントツリーの生成が完了するまで待機する際に使用します。
遷移後の画面の表示が完了するまで待機する場合にも有効です。

ロケーションガードは3種類あり、それぞれFinderに指定した要素の検出を行います。

Guard4.png

・Location Found(ロケーションが見つかった場合)
Finderに指定した要素をエレメントツリーから見つけた場合、条件が満たされます。

・Location Not Found(ロケーション見つからなかった場合)
Finderに指定した要素がエレメントツリーから見つからなかった場合、条件を満たします。

・Location Removed(除去されたロケーション)
Finderに指定した要素がエレメントツリーから除去された(消えた)場合、条件が満たされます。

これらはエレメントツリーを生成しながら対象要素の検出を行うため、
「When seconds have passed」を設定していない場合、無制限に検出を行う可能性があります。
例えば、ひとつのGuarded Choiceステップに「Location Found」と「Location Not Found」を同時に設定した場合です。
この場合、その手前にGuarded Choiceステップの「Tree Stops Changing」を設定することで、
エレメントツリーの生成が完了した後にGuardの判定を行うため、無制限な待機を回避できます。

Guard5.png

以下ナレッジでは、Guarded Choiceステップの内部挙動を解説しています。
本ナレッジと併せてご参照ください。

Guarded Choice(ガードチョイス)の内部挙動解説

5人中5人がこの記事が役に立ったと言っています

コメント

0件のコメント

記事コメントは受け付けていません。