4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

UiPathで画面上の複数ウィンドウから指定のウィンドウを選びたい

Last updated at Posted at 2024-01-25

はじめに

本記事では、UiPathを使用して画面上の複数のウィンドウから指定のウィンドウを選択する方法についてご紹介します。今回は、複数のChromeブラウザウィンドウを立ち上げ、各ウィンドウのタイトルを入力ダイアログで表示します。

背景

あるサイトで複数のIDを入れて検索し、表示されたウィンドウのタイトルを入力ダイアログで選択したうえで、情報を取得したい(検索時はIDしか分からない)とのケースに対して、どういう実装ができるのか考える機会があったのでご紹介をいたします。

実装

今回は「子要素を探す」と「繰り返し(コレクションの各要素)」を用いて実装します。
「子要素を探す」の詳細な使い方は他サイトをご参照ください。
今回の実装では、指定したボタンやウィンドウと紐づいた要素を取ってくるイメージでいれば大丈夫です。

処理では「子要素を探す」で取得したChrome画面情報からタイトルを抜き出し、入力ダイアログで表示します。

実装手順

「子要素を探す」でデスクトップ画面を指定します。
image.png

プロパティより、スコープを「FIND_TOP_LEVELS」にします。
image.png

この設定で、デスクトップ上で開かれている全てのウィンドウの情報を出力することができます。
例えば、以下の画像のQiita記事ウィンドウの情報は次のようにアプリケーション情報とタイトルの2つが表示されます。
UiElement[xx] { UiElement { ClippingRegion=null, Selector="<wnd app='chrome.exe' cls='Chrome_WidgetWin_1' title='【UiPath】マウススクロールアクティビティを使ってみた - Qiita - Google Chrome' />" }}

image.png

複数のウィンドウが画面上にある場合、上記のUiElementが複数出力されます。
今回はChromeで開かれているウィンドウだけが欲しいので、"chrome.exe"が含まれているUiElementのtitleを出力するように、「繰り返し(コレクションの各要素)」を指定します。
また、入力ダイアログで表示するために、取得されたタイトルを";"で繋ぎます。
image.png

そうすると、次のような入力ダイアログを表示することができます。
image.png

最後に選択した画面で行いたい処理を追加したら完了です。(今回はハイライトする実装をしております)
image.png

最後に

個人的に「子要素を探す」を使うケースが今まであまり無かったですが、今回の実装で勉強になりました。

最後まで読んでいただきありがとうございます!

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?