見出し画像

Modern Browser Automation 問題と解決策 - 第1回 アタッチできない

Blue Prism公式noteアカウントをご覧いただき、誠にありがとうございます。プロフェショナルサービスのAkiです。

このシリーズはModern Browser Automation(Edge, Chrome, Firefoxの自動化)の「起こり得る」問題とそれぞれの解決策について連載します。
第1回の今回は「アタッチできない」問題についてご紹介します。
どうぞよろしくお願いします。

1. 現象

あるオブジェクト(オブジェクト1)にアタッチされたブラウザーベースアプリケーション(Edge, Chrome, Firefox)に対して、同じアプリケーションの別の画面に遷移した際に、別のオブジェクト(オブジェクト2)としてアタッチを行うと、「ブラウザー拡張機能が検知されませんでした」という例外が発生します。

2. 原因

ブラウザー拡張機能が最初に開いた画面名を記録するため、画面名が変更される(違う画面名を持つ)と、アタッチは失敗になってしまいます。

3. 解決策

この現象が起こる場合、二番目以降のオブジェクトのAttachアクションの設定は下記の通りにします:
(例:Window Titleパラメータの設定値を”*”として、どんな画面名でも対応できるように指定します)

Window Titleパラメータの設定値を ” * ” にする

※Chromeを使用する場合、Process Nameは"chrome"に設定します。
ただし、この方法を利用する時、単一のブラウザータブを開く必要があります。同じブラウザーで2つ以上のタブ(又はウィンドウ)を開くと、「マッチするウィンドウが複数存在する」例外が発生します。

上記の方法で解決できない場合、バージョン7.0以降をご使用のお客様はタスクマネージャーを開いて、BluePrism.MessagingHost.exeが実行中かどうかを確認しましょう。
※バージョン7.0からBlue Prismアプリケーションとブラウザー拡張機能はBluePrism.MessagingHost.exeとのプロセスを経由してコミュニケーションを行います。

タスクマネージャー内のBluePrism.MessagingHost.exe

ケース 1

EdgeとChrome(又はMozilla Firefox)を両方開く時、途中でどちらかを閉じると、BluePrism.MessagingHost.exeも消えてしまう場合もございます。そのため続けて残りのブラウザーで開いたアプリケーションをアタッチしたり、スパイしたりすることができません。この場合、ブラウザーを停止し、再起動する必要があります。これにより、BluePrism.MessagingHost.exeも再度起動されます。

ケース 2

ブラウザーを起動してもBluePrism.MessagingHost.exeが起動されない場合、現在のブラウザーを閉じて、タスクマネージャーの詳細タブで実行中のmsedge.exe (Edgeの場合)、chrome.exe(Chromeの場合)とのプロセス(バックグラウンドモード)があるかどうかを確認します。

ある場合、このバックグラウンドプロセスにBluePrism.MessagingHost.exeが紐付いてしまっていることが考えられます。全てのバックグラウンドプロセスを停止してから、ブラウザーを再起動すると問題解決できる場合があります。
また、この問題の再発を防ぐために各ブラウザーの設定で「ブラウザーを閉じた際にバックグラウンド拡張とアプリの処理を続行する」オプションをオフにすることを推奨します。

Edgeの場合、下記の設定をしていただきます:

Chromeの場合、下記の通りに設定を変更していただきます:

このように、ウィンドウタイトルやプロセス名等が正しいのにも関わらず、アタッチができない場合、ブラウザー拡張機能が正しく動いていないことを想定できます。是非上記の解決策をお試しください。

次回はスパイされた要素が時々認識できなくなる問題についてご説明します。どうぞよろしくお願いします。