【Blue Prism Tips】ブラウザのスパイ(識別)ができないときの確認点


Blue prismで、Webアプリ画面のスパイ(識別)できない!とか、スパイ(識別)したつもりが「ハイライト」でエラーになる!などを経験したことはありませんか?
このコラムではその際に考えられることや注意点をまとめます。解決のヒントが見つかるかもしれません。

目次

スパイ(識別)の基本のおさらい

Blue PrismでWebアプリなどの外部システムを自動化するには、オブジェクトのアプリケーションモデラーで操作対象の要素、例えばボタンや入力エリアをスパイ(識別)する必要があります。
対象画面にアタッチした後、「識別」ボタンを押して要素の情報を取得し、「ハイライト」ボタンで確認します。
ここで操作対象の要素が、赤枠でハイライトされたらスパイ(識別)成功!となるわけです

ですが、図1や図2のようにハイライトを行ってもエラーになってしまうケースや、そもそも操作対象の画面要素をスパイ(識別)できない(緑の枠が当たらない)という場合もあります。

図1:スパイ(識別)エラー画面その1
図2:スパイ(識別)エラー画面その2

そんな時は、次のようなことを試してみましょう!

マッチ条件の確認

アプリケーションモデラーは、一意に特定が可能と考える属性に対し自動でチェックをいれてくれます。ただし、自動でチェックされた条件は、そのまま使えるとは考えないほうがよいです。

図1のように、「指定されている条件に合う要素がない」というエラーメッセージの場チェックを入れた属性のマッチ条件が変わっていることがあるかもしれません。

図2のように、「一致する要素が複数見つかる」というエラーメッセージの場合、チェックの属性を増やすことで一意に特定ができるかもしれません。
ハイライトでエラーになった時はもちろん、ハイライトに成功した時も適宜調整しましょう。(マッチ条件設定のノウハウは奥が深いので、また別の機会に。)

スパイモードの切り替え

マッチ条件を調整してもハイライトがうまくできない、もしくはスパイ(識別)自体ができない時は、スパイモードを変更してスパイ(識別)できるか試してみましょう!
スパイモードは、アプリケーションモデラーの設定で指定する、アプリケーションタイプで取得できる情報が変ってきます。

図3:アプリケーションモデラーのスタート画面

アプリケーションタイプの選択(後述)で「ブラウザベース(Internet Explorer)」を選択し「識別」ボタンを押した時、初めに緑のウィンドウ(図4)が表示されるかと思います。

図4:HTMLモード

これは「HTML」の属性情報を取得できるHTMLモードです。なおスパイモードは、「ALTキー」を押すごとに切り替えることができ、表示される順番で試すことを推奨しています。なお、「HTMLモード」がモードを切り替えても表示されない場合、アタッチ先が間違っている可能性が高いです。IEは2つのWindowsプロセスで動作し、片方がHTML表示を担当していますのでChild Index(子インデックス番号)を切り替えて試してみましょう。

Windowsアプリケーションの基本的な要素のスパイを可能とする「win32モード」

WPF (Windows Presentation Foundation)に対応し、全Windowsオペレーティングシステムで利用できる情報を取得する「UIオートメーションモード」

Microsoft Active Accessibility (AA)の情報を取得できる「アクセシビリティモード」

では、各スパイモードをWebアプリでどのように使うかについて、簡単に見ていきましょう。

HTMLモード

名前の通り、HTMLの属性情報を取得するモードです。ご存じの方も多いでしょうが、HTMLとはWebページの内容を記載したファイルの形式で、IEのようなブラウザはこの形式のファイルを指定したURLからダウンロードして表示する機能を持ったソフトです。
このモードを使うときの注意が、あくまでHTMLが操作対象となることです。対象がIEだとしても、HTMLを表示している部分(タブページ内部)以外の場所はHTMLではないため、このモードでスパイすることはできません。一部のダイアログはHTMLを使って表示されていますが、多くのダイアログも同様にスパイ不可能です。スパイがうまく行かない場合はとりあえずモードを切り替えてみましょう。

win32モード

上の通り、IEのようなWebブラウザ自体はHTMLで作られているわけではありません。「HTMLを表示する機能を持ったWindowsアプリ」と考えるのが適切です。
なのでHTMLモードでスパイできない、タブページの外の部分などはwin32モードで認識可能なことが多いです。

例えば、図7や図8の画面のように、win32モードで画面内の要素(ボタン等)を特定できる画面があります。これらは、Windowsが汎用部品的に提供している機能のため、Webアプリを操作中に図7や図8のようなダイアログが表示されても、win32モードでの操作が必要です。

図7:Win32モードで読み取れるダイアログの例 その1
図8:Win32モードで読み取れるダイアログの例 その2

UIオートメーションモードとアクセシビリティモード

ブラウザーモードやWin32モードでもスパイ(識別)ができない場合、UIオートメーションモード(通称UIA)やアクセシビリティモード(通称AA)を試すとうまく行くことがあります。これらは処理速度が遅いため、これらのモードでしか要素が特定できない場合に使用します。
使用する場合も、UIAとAAどちらが速いか?マッチインデックスをマッチ条件にしたら認識速度が改善しないか?など、少しでも速くなるよう調整しましょう。

オブジェクトの分け方のTips

図7や図8のようなダイアログ画面を操作する時は、呼び出し元の画面とは別のオブジェクトを作成しましょう。
「オブジェクトは画面ごとに分割して小さく作る」がBlue Prismのベストプラクティスです。単に保守性がよくなるだけでなく、アタッチが分離することでエラーが解消されることもあります。
実際にダイアログオブジェクトを作る時に迷いがちなポイントをいくつか挙げておきます。
●アプリケーションウィザードの使用しているアプリケーションのタイプは「Windowsアプリケーション(図11)」を選択。

図 11:使用しているアプリケーションのタイプ設定画面

●アタッチも新しく作ったオブジェクトで、あらためて行いましょう。
●アタッチパラメータのwindowタイトルやプロセス名は、呼び出し元の親画面と同じです。ダイアログを操作する場合などは、windowタイトルをプロセスから設定してアタッチできるようにオブジェクトを設計すると、呼び出し元が違うときでも同じオブジェクトを使用可能となりとても便利です。

まとめ

自動でチェックされるマッチ条件は、必ず見直しましょう。
スパイ(識別)がうまくいかない時は、モードを切り替えてみましょう。
そもそもHTMLモードが表示されない場合は、アタッチ先を見直しましょう。
上手くスパイできない子画面やダイアログは、オブジェクトを分けてアタッチしてみましょう。

この記事をシェアする

次の記事

Power Automate Desktop無償版と有償版のちがい