はじめに
本記事では、UiPathを使用して画面上の複数のウィンドウから指定のウィンドウを選択する方法についてご紹介します。今回は、複数のChromeブラウザウィンドウを立ち上げ、各ウィンドウのタイトルを入力ダイアログで表示します。
背景
あるサイトで複数のIDを入れて検索し、表示されたウィンドウのタイトルを入力ダイアログで選択したうえで、情報を取得したい(検索時はIDしか分からない)とのケースに対して、どういう実装ができるのか考える機会があったのでご紹介をいたします。
実装
今回は「子要素を探す」と「繰り返し(コレクションの各要素)」を用いて実装します。
「子要素を探す」の詳細な使い方は他サイトをご参照ください。
今回の実装では、指定したボタンやウィンドウと紐づいた要素を取ってくるイメージでいれば大丈夫です。
処理では「子要素を探す」で取得したChrome画面情報からタイトルを抜き出し、入力ダイアログで表示します。
実装手順
プロパティより、スコープを「FIND_TOP_LEVELS」にします。
この設定で、デスクトップ上で開かれている全てのウィンドウの情報を出力することができます。
例えば、以下の画像のQiita記事ウィンドウの情報は次のようにアプリケーション情報とタイトルの2つが表示されます。
UiElement[xx] { UiElement { ClippingRegion=null, Selector="<wnd app='chrome.exe' cls='Chrome_WidgetWin_1' title='【UiPath】マウススクロールアクティビティを使ってみた - Qiita - Google Chrome' />" }}
複数のウィンドウが画面上にある場合、上記のUiElementが複数出力されます。
今回はChromeで開かれているウィンドウだけが欲しいので、"chrome.exe"が含まれているUiElementのtitleを出力するように、「繰り返し(コレクションの各要素)」を指定します。
また、入力ダイアログで表示するために、取得されたタイトルを";"で繋ぎます。
そうすると、次のような入力ダイアログを表示することができます。
最後に選択した画面で行いたい処理を追加したら完了です。(今回はハイライトする実装をしております)
最後に
個人的に「子要素を探す」を使うケースが今まであまり無かったですが、今回の実装で勉強になりました。
最後まで読んでいただきありがとうございます!