まず表題の「オートメーション ブラウザー」とは何かと言うと、Power Automate Desktop(PAD)ではMicrosoft EdgeやGoogle Chromeといった、いくつかのブラウザーを操作できるのですが、その中の一つがPADに組み込まれているオートメーション ブラウザーです。
オートメーション ブラウザーは、IEを操作するためのアクション「新しい Internet Explorer を起動します」の「起動モード」パラメーターで「オートメーション ブラウザーを起動します」を選択することで実行できます。
今回はこのオートメーション ブラウザーがどういったものなのかを調べた結果を簡単にまとめてみます。
オートメーション ブラウザーはWebBrowserコントロール
まずウィンドウの構造をSpy++で調べた結果が下図になります。
WindowsFormsの下にShell Embedding、Shell DocObject View、一番下に「Internet Explorer_Server」クラスのウィンドウがぶら下がっているのを見る限り、オートメーション ブラウザーはフォーム(System.Windows.Forms)上に貼りついたWebBrowserコントロールのようです。
オートメーション ブラウザーの実行ファイルは「PAD.AutomationBrowser.exe」
次にオートメーション ブラウザーの実行ファイルが何なのかをProcess Explorerで調べたところ「PAD.AutomationBrowser.exe」となっており、フロー デザイナー(PAD.Designer.exe)とは別の実行ファイルであることが分かりました。
コマンドライン文字列として下記パラメーターが渡されていることも確認できます。
"C:\Program Files (x86)\Power Automate Desktop\PAD.AutomationBrowser.exe" --jobName="***" --windowState="0" --fileforhandles="***" --jumpstartURI="***" --userAgentString="" --scriptErrorsSuppressedRightAway="true"
「–jobName」や「–jumpstartURI」の値を見る限りBase64エンコードした文字列を渡しているようですが、とりあえずエンコードせずに下記のようなパラメーターを付けてコマンド プロンプトから実行したところ、PADが終了された状態でも単独で起動できました。
"C:\Program Files (x86)\Power Automate Desktop\PAD.AutomationBrowser.exe" --jobName="PAD.Robot" --windowState="0" --fileforhandles="C:\\Test\\PAD\\handles" --jumpstartURI="https://www.ka-net.org/blog/" --userAgentString="" --scriptErrorsSuppressedRightAway="true"
User Agent
userstackにアクセスしてUser Agentを確認したところ、下記のようになっていました。
Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko
Windows 8.1(32ビット版)のIE11扱いのようです。
Basic認証やクライアント証明書を必要とするサイトへのアクセス
オートメーション ブラウザーについてはロボ研さんのブログでも紹介されています。
その中でBasic認証やクライアント証明書に対応していないとの記述があったので試してみました。
Basic認証
まずBasic認証については昔からよく使われる、URLに「ユーザ名:パスワード@」を含める方法で突破できました。
クライアント証明書
クライアント証明書が必要なサイトは、アクセス時に証明書を選択できずにページを開けませんでしたが、下記サイトを参考に「scriptErrorsSuppressedRightAway」オプションを「false」にして「PAD.AutomationBrowser.exe」を手動で実行したところ、ページが開けることを確認しました。
ただし、「新しい Internet Explorer を起動します」アクションからはこのオプションを指定できるようになっていないようなので、基本的にはオートメーション ブラウザーはクライアント証明書には非対応と言えるでしょう。
IEChooserでデバッグ
オートメーション ブラウザーで表示しているWebサイトではEdgeのF12開発者ツールが使えないため、デバッグする際は「IEChooser」(%SystemRoot%\System32\F12\IEChooser.exe)を使うと良いでしょう。
下記記事でも触れていますが、WebBrowserコントロールはIEのサポート終了後も一定期間はサポートされるようなので、どうしても使い続けなければならないIE限定のWebシステムが残っている場合は、その自動化にオートメーション ブラウザーが使えるだろうと思います。
この記事へのコメントはありません。