広告

Power Automate Desktop:新しいタブで開かれたタブをインスタンス化してコントロールする方法

Power Automate Desktop

初めてRPAツールを触る方や基本的なプログラミング学習向けに、Power Automate DesktopのWebオートメーション、UIオートメーションアクションを使ってブラウザの新しいタブの操作を行う方法について解説しています。ご自身の環境で動作可能なフローのテンプレートも共有して説明していますので、Power Automate Desktopを使った自動化フローを作る際の参考にしてみてください。

マイクロソフトの無償RPA(自動化ツール)である「Power Automate Desktop」で、新しいタブで開かれたタブをインスタンス化してコントロールする方法ついて解説しています。

ひとつのウィンドウやページを扱うためのアクションはほかにもありますが、「新しいChromeを起動する」アクションを応用すると、Webサイトの巡回などで新しいタブで開かれたページなどを自由に操作できるため、アクションの設定方法や使い方をぜひマスターしてみてください。

無料自動化ツールの「Microsoft Power Automate Desktop」について、そもそもの解説や導入方法についてはPower Automate Desktopについてをお読みいただくと基本的な使い方などが確認できます。

「新しいChromeを起動する」アクションについて

Power Automate Desktopの「新しいChromeを起動する」(Microsoft Edge / Firefox / Internet Explorer)は新しくブラウザのウィンドウを表示し、指定したURLを表示して操作できるようにするアクションです。

一般的なWebサイトのオートメーションを行う際、ひとつのページを表示してその情報を使って処理するような場合は、この「新しいChromeを起動する」アクションを使ってWebサイトにアクセスし、アクションで取得した%Browser%インスタンスから必要な内容を利用すれば十分です。

ただ、もしここで%Browser%で操作するページが、目的のページを新しいタブで開くような仕様になっていた場合、少し問題が発生します。

新しく開いたタブはWebブラウザー型としてインスタンス化されていないため、そのままではWebオートメーションのアクションを使ってページを解析したり、タブを閉じたりするような操作ができません。

こういった場合も「新しいChromeを起動する」アクションを使うことで、新しいタブに対して新たなWebブラウザ型のインスタンスとして変数化し、コントロールできるようになります。

「新しいChromeを起動する」アクションの設定方法について

Power Automate Desktopの「新しいChromeを起動する」アクションには以下のような設定項目があります。(「新しいMicrosoft Edgeを起動する」、「新しいFirefoxを起動する」、「新しいInternet Explorerを起動します」アクションの設定も同様です。)

[起動モード]:ブラウザのウィンドウ(タブ)を新しいインスタンスとして起動するかを指定します。もし、すでに存在しているタブなどを利用する場合は、ここで [実行中のインスタンスに接続する] を選択します。

[初期URL]:ブラウザの起動時に初めに表示するページのアドレスを指定します。

繰り返しアクションなどを使ってループ処理をする場合、初期のページアクセスが不要なことも多いと思いますが、初期URLの設定は空にすることができません

このような場合、[初期URL] の設定を「about:blank」などとしておくと、ネットに接続することなく空白のページを表示してフローを先に進めることができます。

[ウィンドウの状態]:表示されるブラウザのウィンドウの状態を [標準][最大化][最小化] のいずれかで選択することができます。

[最小化] を指定するとブラウザウィンドウが表示されず、バックグラウンドでフローを処理することが可能です。

ただし、最小化の状態では一部のUI操作で画面の状態が特定できなくなるためエラーになる場合があります。(「マウスを画像に移動します」や「テキストが画面に表示される場合」などのアクションがエラーになります)

[キャッシュをクリア]:オンにするとWebブラウザの起動直後にキャッシュがクリアされます。

[Cookieをクリア]:オンにするとWebブラウザの起動直後に保存されたすべてのCookieがクリアされます。

[ページが読み込まれるまで待機します]:オンにすると、初期URLで指定したページの読み込みが完全に完了するまで待機します。オフにした場合、初期URLのアクセスが開始された段階で次のアクションへ進みます。

このアクションの直後のアクションでアクセスしたページの解析を行うような場合、読み込みが完了していないと処理がエラーになる可能性があります。

[ポップアップ ダイアログが表示された場合]:初期URLへアクセスした際にポップアップ ダイアログ(モーダルウィンドウ)が表示されたときの動作として、[何もしない][それを閉じる][ボタンを押す] のいずれかを選択して行うことができます。

「ウィンドウでタブを選択する」アクションの設定のサンプル

ここでは、Google Chromeで新しく開かれたタブを選択して、そのタブを新しいインスタンスとして登録するアクションの設定方法を説明します。

サンプルフロー

作成したフローのスクリーンショットです。

このサンプルでは、新しく開かれたタブをインスタンス化し、直後にそのインスタンス変数を指定してWebブラウザーを閉じるというアクションを行っています。

今回のサンプルはウィンドウを表示して閉じるだけの簡単なフローのため、そのまま実行するとあっという間に処理が終了してしまいます。

実行遅延を1秒以上に設定しておくと、各ステップの動作がわかりやすくなります。

また、ステップ2で「Twitterボタンをクリックする」という動作が含まれていますが、これは冒頭で紹介したような別タブで開かれるリンクをクリックする例として挙げています。

サンプルはあくまでデモンストレーションとしての動作となっていますが、ここで設定される%Browser2%のインスタンスを利用することで新しいタブの内容を自由に操作することが可能です。

アクションの解説

「新しいChromeを起動する」アクションで既存のタブに接続する

「新しいChromeを起動する」アクションは、新しいブラウザウィンドウを起動するだけでなく、すでに表示されているタブやウィンドウに接続して、それらをインスタンス変数として生成することが可能です。

「新しい~を起動する」という表現が紛らわしいですが、本来は「Webブラウザ型のインスタンスに接続(もしくは生成)するためのアクション」として理解していたほうがより動作の実態に近いかもしれません。

ステップ3のアクションでは以下のように設定しています。

新しく開かれたページに接続するには [起動モード] で「実行中のインスタンスに接続する」を選択します。また、[Chromeタブに接続する] で「フォアグラウンド ウィンドウを使用」を選択します。

こうすることで、このアクションの直前で新しいタブでページが開かれていた場合、フォアグラウンドでアクティブになっているタブを対象に、その内容をインスタンス変数として生成することが可能です。

この操作はChromeなどのブラウザ側の設定で、「新しいタブをバックグラウンドで開く」が有効になっていないことが前提となります。

設定をカスタマイズした環境ではPower Automate Desktopの利用時に動作の差異が生まれることがあるため、フロー実行の際にはデスクトップ環境による影響がないことを注意してください。

サンプルコード(Robin)

今回のサンプルフローのRobin言語ソースコードです。

コードをコピーし、Power Automate Desktopの編集画面に張り付けると、テンプレートとしてアクションをご自身の環境でそのまま利用することができます。

WebAutomation.LaunchChrome Url: $'''https://cravelweb.com''' WindowState: WebAutomation.BrowserWindowState.Normal ClearCache: False ClearCookies: False BrowserInstance=> Browser
WebAutomation.Click BrowserInstance: Browser Control: appmask['Web Page \'h ... te-desktop\'']['Twitterボタン']
WebAutomation.AttachToForegroundChrome BrowserInstance=> Browser2
WebAutomation.CloseWebBrowser BrowserInstance: Browser2
WebAutomation.CloseWebBrowser BrowserInstance: Browser

Power Automate Desktopでフロー共有する方法、共有されたコードの利用の詳細については作成したフローを他のユーザーに共有する方法でも解説しているので、併せてご参照ください。

まとめ

Power Automate Desktopの「新しいChromeを起動する」アクションを使って既存のタブに接続する方法について解説しました。

RPAによるPCの自動化作業では今回のようなブラウザの操作を必要とすることが多いと思いますが、複数のタブやウィンドウにまたがった操作をするような場合、今回のようにそれぞれをインスタンス化することで適宜切り替えを行ったり、ウィンドウを確実に閉じることができるようになるため便利です。

クラベルではほかにも色々とテンプレートとして使えるPower Automate Desktopのフローサンプルを解説付きでご紹介していますのでぜひ参考にしてみてください。

お読みくださりありがとうございました。今回の内容が少しでもお役に立てば幸いです。

コメント

タイトルとURLをコピーしました