ポップアップ・別ウィンドウ・フレーム・確認ダイアログを含む画面の扱い方
ロボットが止まりやすい、確認ダイアログや別ウィンドウ、iframe を含む画面について、種類ごとの違いと操作の考え方、出たり出なかったりする表示への備え方を整理します。
なぜこれらの画面で止まりやすいのか
ロボットは、指定した画面の中で指定した要素を探して操作します。ところが、確認ダイアログや別ウィンドウ、フレーム(iframe)を含む画面では、「操作したい要素が、ロボットが今見ている場所とは別の場所にある」という状態が生まれます。人の目には同じ画面に見えても、ロボットにとっては別の窓や別の文書であるため、要素が見つからずに止まってしまいます。
対処の第一歩は、目の前の表示がどの種類なのかを見分けることです。種類によって、扱い方がまったく違います。
4つの種類を見分ける
業務システムでよく出会うものは、次の4種類です。
- ブラウザの確認ダイアログ:「登録してよろしいですか?」と OK・キャンセルが出る、ブラウザ標準の小さな窓。ページの要素ではない
- 画面内のモーダル表示:ページの上に重なって表示される窓風の部品。見た目はダイアログでも、実体はページの一部
- 別ウィンドウ(別タブ):検索の補助画面や帳票のプレビューなどが、新しいウィンドウとして開く
- フレーム(iframe):ページの中に別のページが埋め込まれている。外側と内側で別の文書として扱われる
種類ごとの扱い方の考え方
Design Studio には、確認ダイアログへの応答を指定したり、操作対象のウィンドウやフレームを切り替えたりする仕組みがあります。設定の場所や名称はバージョンによって異なる場合がありますが、考え方は共通です。
- 確認ダイアログ:表示されたときに OK とキャンセルのどちらを選ぶかを、ダイアログが出る操作の前に決めておく
- 画面内のモーダル:通常の要素と同じく、ボタンをクリックして閉じる。閉じたあと、下の画面が操作できる状態に戻るのを待つ
- 別ウィンドウ:操作対象を新しいウィンドウに切り替え、用が済んだら閉じて元のウィンドウに戻す
- フレーム:操作したい要素がどのフレームの中にあるかを確認し、そのフレームを対象にして操作する
出たり出なかったりする表示への備え
厄介なのは、「お知らせ」のポップアップや、特定のデータのときだけ出る警告のように、毎回は表示されないものです。表示される前提で作ると、出なかったときに止まり、出ない前提で作ると、出たときに止まります。
このような表示は、「表示されていれば閉じる、なければ何もしない」という形で組みます。Try ステップなどを使い、閉じる操作に失敗しても次へ進めるようにしておく方法が一般的です。どんな条件で表示されるのかを担当者やシステムの管理者に確認し、テストデータでわざと表示させて動作を確かめておくと安心です。
要素がどこにあるかの調べ方
操作したい要素がフレームの中にあるのか、画面内のモーダルなのかは、見た目だけでは分かりません。普段使っているブラウザの開発者向けの機能で要素を調べると、iframe の中にあるかどうかを確認できます。Design Studio でも、ページの構造を表示して、要素がどの文書の中にあるかを確認できます。
よくある失敗
この種類の画面でよく起きる失敗です。
- 別ウィンドウを開いたまま元の画面を操作しようとして、要素が見つからない
- 別ウィンドウを閉じ忘れ、繰り返しのたびにウィンドウが増えていく
- 確認ダイアログで意図せずキャンセルを選び、登録されていないのに次へ進む(登録後の完了確認で防ぐ)
- 開発時には出なかったお知らせのポップアップが、本番の初日に表示されて止まる
※BizRobo! は RPA テクノロジーズ株式会社の製品です。本サイトは同社とは関係のない個人の解説サイトです。画面や機能の名称は、製品のバージョンによって異なる場合があります。