画面の読み込み待ちを正しく設定して、止まりにくいロボットにする
「昨日は動いたのに今日は止まった」の多くは、画面の読み込み待ちが原因です。固定時間の待機に頼らず、要素の表示を待つ考え方と、タイムアウトの設定、遅いシステムへの対処を解説します。
なぜ待機の設定が重要か
Web システムは、混み具合や処理する件数によって、画面が表示されるまでの時間が毎回変わります。ロボットが画面の表示を待たずに次の操作をすると、「ボタンが見つからない」「入力欄がない」といったエラーで止まります。
開発中は社内の空いている時間に試すことが多いため問題が出ず、本番の朝の時間帯にだけ止まる、ということがよく起きます。
固定時間の待機に頼らない
手軽なのは「5秒待つ」のような固定時間の待機を入れる方法ですが、これには2つの問題があります。システムが遅い日は5秒では足りずに止まり、速い日は無駄に待つので処理時間が長くなります。
基本は「次に操作する要素(ボタンや入力欄、結果の表など)が表示されるまで待つ」という考え方で設定します。待つ対象は、画面の読み込みが終わったことを確実に示す要素を選びます。
- 検索結果を待つなら、結果の表そのもの(または「該当なし」の表示)
- 保存完了を待つなら、完了メッセージ
- 画面遷移を待つなら、遷移先にしかない見出しやボタン
タイムアウトを決める
待ち続けて永久に止まらないよう、上限の時間(タイムアウト)を設定します。上限は、そのシステムの遅い日の実績より少し長めにします。タイムアウトになったときは、エラーとして記録し、後で再実行できるようにしておきます(エラー処理の記事を参照してください)。
遅い・不安定なシステムへの対処
処理件数の多い時間帯を避けて実行する、1件ごとに短い間隔を空けてシステムに負荷をかけすぎない、といった運用面の工夫も効果があります。ロボットは人より速く操作するため、相手のシステムに想定以上の負荷をかけてしまうことがあります。とくに社外のサイトを操作する場合は、アクセスの頻度に配慮してください。
- 実行時間帯を、システムの混雑する時間からずらす
- 連続処理の間に適度な間隔を置く
- タイムアウトになった件だけを後で再実行できるようにする
動作確認のコツ
テストは、本番と同じ時間帯・同じくらいの件数でも行います。また、開発中にわざとネットワークを遅くしたり、システムが混んでいる時間に動かしたりして、待機の設定が十分かを確認しておくと、本番での停止を減らせます。
※BizRobo! は RPA テクノロジーズ株式会社の製品です。本サイトは同社とは関係のない個人の解説サイトです。画面や機能の名称は、製品のバージョンによって異なる場合があります。