PC用のフローティングバナー スマホ用のフローティングバナー

実行時の操作対象アプリケーションの応答速度によってエラーが発生します。

Q:実行時の操作対象アプリケーションの応答速度によってエラーが発生します。
WinActor処理の遷移速度が操作対象アプリケーションの応答速度を追い越してしまっていることが要因と思われますが、対応策はございますでしょうか。

ございます。
本記事では、安定稼働に向けた方策として「待機処理」を説明いたします。

待機処理の重要性

WinActorはクライアント側で動作するソフトウェアのため、PCのスペックやタスク状態に影響を受けます。
PCのスペックやタスク状態に依存する場合、WinActor部品で操作対象に操作を加えた際の応答時間にバラつきがでます。

例えば、上記のような処理を想定してみます。
「取得ボタン押下」をイベントモード、もしくは画像マッチングでおこなった場合、ボタンを押下した時点で、WinActorは次の処理に進みます。
そして、即座に「取得したファイルを開く」処理に遷移します。

このため赤枠で示した、ダウンロード処理の部分がエラーの原因となり得ます。
PCの処理が重たい場合、ダウンロードが遅くなり、存在しない(ダウンロードが完了していない)ファイルを開こうとして意図しない結果が引き起こされる可能性があります。

今回は、ダウンロード処理を一例に挙げました。
その他の例としては、ページ遷移やポップアップへの操作などで同様のことが発生し得ます。

待機処理の種類

上記のようなエラーを回避する方法は、大きく分けて3種類ございます。
1. 物理的な待機時間を設ける
2. 画面状態を監視する
3. 処理が完了するまで同じ処理を繰り返す

対処法① 物理的な待機時間を設ける

<メリット>
 時刻・日付単位での待機ができる。
<デメリット>
 処理結果を確認しているわけではないので、十分な待機時間が必要である。
 処理の成否に関わらず一定時間待機するため、多用するとシナリオ実行時間が冗長になる。

指定時間待機


「指定時間待機」ノードを使用します。

関連記事

指定時間待機(変数指定可)


「09_待機\指定時間待機(変数指定可)」ライブラリでも指定可能です。
ただVer.7以降は「指定時間待機」ノードでも変数を指定可能なため、当該ライブラリを使用する必然性は特にありません。

対処法② 画面状態を監視する

<メリット>
 前処理によって表示される画面が操作可能になるまで待機してくれる。
 操作完了となったら即座に次の処理へ移行できる。
<デメリット>
 画面表示がない操作対象の処理結果は確認できない。

ウィンドウ状態待機


「ウィンドウ状態待機」ノードを用いて監視します。

関連記事

監視ルール


実行したい処理をサブルーチンにまとめ、イベント監視機能を使用します。

関連記事

「23_ブラウザ関連\04_待機」配下のライブラリ


操作対象がブラウザであれば「23_ブラウザ関連\04_待機」の「状態変化待機」「読み込み完了待ち」ライブラリを使用します。

対処法③ 処理が完了するまで同じ処理を繰り返す

<メリット>
 画面表示がない対象でも、処理結果を監視できる。
 例)指定フォルダにファイルが存在するまで繰返しを行う。
<デメリット>
 繰返し回数に制限を設けないと、別の問題でエラーが発生していた場合、無限ループになってしまう。

リトライ処理

繰り返しグループを成功して、同じ処理を成功するまでリトライします。

関連記事