「シナリオを実行したときにエラーが起きました」というご相談を受けることがよくあります。
エラーとは切っても切れない関係。
どんなに手を尽くしても、一生エラーが一度も起きないという
シナリオを作るのはなかなかに難しいことだったりします。
エラーを失くす(減らす)ための対策としては様々やり方がありますが、
今回はその中でも【待機】について重点的にお伝えしていこうと思います!
エラー対策については以下の記事もご参照ください。
0.事前に確認すること
お客様から「エラーが起きた」とご連絡を受けたとき、私は大体次のことをお聞きしています。
お聞きする意図は、ざっくり以下の通りです。
1.どのノードでどんなエラーが起きていますか?
⇒エラーを起こしているノードとエラーメッセージが分かるとある程度原因や対策に見当がつく場合があります。もちろんそれだけではわからない場合もあります。
2.何度やってもエラーが発生しますか?(起きたり起きなかったりですか?)
⇒何度やっても同じノードでエラーで止まるなら、ノードの設定が間違っているかもしれませんし、止まらない場合もあるなら設定自体は間違っていないのかもしれない、とあたりを付けることができます。
3.エラーはいつも同じノードで起きていますか?
⇒こちらもノードの設定自体に誤りがあるのか、別の要因かを見極めるためにお聞きしています。
ノードの設定が誤っている場合はその設定を修正すればエラーを解消できるのでいいとして、
問題は
・部分実行ではうまくいくのに、最初から通して実行するとできない
・うまくいくときとエラーが起きるときがある
・エラーを起こすノードが固定ではない
という場合です。
うまくいくときもあるならノード自体の設定は問題なさそうです。
では何が問題なのか、そう思ったときに一度待機時間不足を疑っていただきたいのです。
■待機時間の必要性
WinActorは一部のノードを除いて、「待つ」という機能がありません。
例えば、あるWebサイトを開きログインして、トップページから【発注】というメニューをクリックさせるとします。シナリオに起こすと以下のようになります。
ログインのWebページを開く処理をした後【そのページを表示し文字の入力ができるようになるまで】少し時間がかかるようなWebサイトは多いと思います。
かかる時間はネットワーク回線の速度やそのWebサイトの仕様等にも影響されるので固定ではありません。
上図で「ログインIDを入力する」のに使っている「値の設定」ノード(ライブラリ▸23_ブラウザ関連)には
タイムアウト設定(※後述)が付いているので、その設定時間までは待つことができますが、
タイムアウトを超えても値設定のための要素が見つからないとエラーになってしまいます。
また、ログインボタンをクリックした後、トップページが表示され
次の操作ができるようになるまでにも、少し時間がかかる場合がありますね。
タイムアウト設定があるのでその時間までは待ちますが、
その時間を過ぎたら「実際の画面が次の操作ができるようになっていようが・いなかろうが」次のノードを実行しようとするのがWinActorです。
次のノードの実行ができる状態になるまで待てなかったことによるエラーは、たびたび目にします。
そこで【待機】の登場です!
【待機】をさせることによって、確実に次の処理を実行できるようになってから次のノードの実行へ進めることができます。
これによって成功率を上げることができます。
【待機】にも場面によって様々なやり方がありますので、ノードと使うシーン例を併せてご紹介していきたいと思います。
1.画面の遷移には「ウィンドウ状態待機」
ログイン後、トップページが安定するまで待機させたい場合など、
「画面遷移が伴う場合」に有効なのが「ウィンドウ状態待機」ノードです。
※ノード▸アクション
このノードは画面の変化を検出するまで待機することができますので、ログイン後、次のページが表示されるまで待ちたい場合などに使います。
ログインに時間がかかるときがあるならタイムアウト設定を長めに設定しておく。
2.ブラウザ操作に関しては「読込完了待ち」
ブラウザ操作に関しては、専用の待機系ノードが用意されています。
「読み込み完了待ち」「読み込み完了待ち_タイムアウト付き」です。
※ライブラリ▸23_ブラウザ関連▸04_待機
このノードはWinActor Ver.7.4.0から実装されたノードですので、
Ver.7.3.1以前のWinActorをお使いの場合は使うことができませんが、
デスクトップ上のブラウザが読み込み完了状態になるまで待つことができます。
▲オプションでのブラウザ操作方法の設定
▲オプションで拡張機能に設定していても、シナリオ情報画面でチェックがついていると
「Webdriverを利用する」と認識される
ブラウザ操作方法の「拡張機能」「Webdriver」については、こちらご参照ください。