6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

RPAAdvent Calendar 2024

Day 23

Power Automate for DesktopのUI要素の取得

Last updated at Posted at 2024-12-22

この記事は、RPA Advent Calendar 2024 12月23日担当分の記事です。

Power Automate for DesktopでUI要素を取得する方法を記事にします。

UI要素とは

そもそもWebページを操作するには、操作対象となるボタンや入力枠などを指定する必要があります。
これらの情報を 「UI要素」 と呼び、Power Automate for Desktopでは、Webページから 「UI要素」を取得し、その情報をアクションに登録することで操作が可能になります。

UI要素とは
ユーザーとコンピュータ間で情報をやりとりするための仕組みのこと。
WEBページの場合は「テキスト」「テキスト フィールド」「チェックボックス」「ボタン」「リンク」など部品すべてを指します。

UI要素取得方法

気象庁のWebページを参考に記載していますが、赤枠の「2024年」を取得する場合を例にします。

image.png
※サーバに負荷をかけずあくまで個人学習の用途での利用

本記事の内容を検証する場合は、事前に利用規約を確認ください

個別でのUI要素の取得方法

以下のように「Webページのリンクをクリック」アクションを選択して、UI要素から「UI要素の追加」ボタンをクリックします。

image.png

すると上記の右側のようにUI要素ピッカーが表示されます。
この状態で気象庁のWebページを表示して、「2024年」 にマウスカーソルを合わせると赤枠 「Anchor」 が表示されますので、「Ctrlキー」 を押しながらリンクをクリックします。
image.png
※サーバに負荷をかけずあくまで個人学習の用途での利用

UI要素ピッカーが閉じ、再度「Webページのリンクをクリック」アクションの画面が表示されますので「保存」ボタンを押して閉じます。

右側にひし形図形3つが重なったアイコンがありますので、クリックすると取得したUI要素が表示されます。
右クリックして名前の変更をクリックします。
image.png

それぞれ下記のようにUI要素の名前を変更します。

変更前 変更後
Web Page 'h ... /index.php' 気象庁過去の気象データ検索
Anchor '2024年' 2024年

image.png

一旦、2024年を取得する分には、これで問題なく取得できます。

しかし、2024年~1976年を取得する場合は、「Webページのリンクをクリック」アクションが年数分必要となり、UI要素も取得する年数分必要となります。
image.png

一括でのUI要素の取得方法

2024年~1976年を取得する場合においては、個別でのUI要素の取得方法が向いていないため、一括で取得する方法を記載します。

image.png
※サーバに負荷をかけずあくまで個人学習の用途での利用

一括で取得する場合は「Webページからデータを抽出する」アクションを使用します。

image.png

「Webページからデータを抽出する」の設定画面が表示されたまま、ブラウザ画面に切り替えると「ライブWebヘルパー」が開きます。
image.png

この状態で2024年を右クリック→要素の値を抽出をクリック→Href:('https://www.data...') をクリックします。
image.png

同じ要領で、2024年の隣の2004年を右クリック→要素の値を抽出をクリック→Href:('https://www.data...') をクリックします。
すると、2024年、2023年、2004年、2003年、1984年、1983年の6つの年が選択されているのを確認できます。
image.png

この状態では、2024年~1976年までの全部の年のURLを取得することはできません。
そのため、詳細設定をクリックして、パラメータを設定します。

image.png

設定項目
抽出 リスト
基本CSS セレクター div[Id="main"] > table > tbody > tr > td > div > table > tbody > tr > td > table > tbody > tr > td:lt(3) > a[Text*="年"]
CSS セレクター 空白
属性 Href
正規表現 空白

今回は、1列でデータを取得したかったので、抽出:リストとして、基本CSS セレクターで年を含むリンクを抽出としました。
(各CSSセレクターは基本CSSセレクターで定義しているため、空白で、属性はリンクを取得したいのでHrefとしています)

Power Automate for DesktopのCSSセレクターの話はspumoniさんが以下の記事にまとめてくださっていて大変勉強になりました。
いつも参考にさせていただいております。

すると、以下のように全ての年のURLが抽出される結果となりました。
(Webページでも、全ての年が、緑の破線で囲まれています)

image.png

Webライブヘルパー上で終了をクリックします。
取得したURLのデータは、リスト型の変数DataFromWebPageに格納されます。

image.png

変数DataFromWebPageはリスト型のため、ForEachアクションを使用して、DataFromWebPageの中身(URL)をCurrentItemに格納します。
ForEach内でWebページに移動アクションを用いて、CurrentItem(URL)のページに移動します。
image.png

まとめ

一つずつUI要素を取得する方法と、一括でUI要素の情報を取得する方法を記事にしました。
一括でUI要素を取得したほうが処理速度も速いので、効率性も向上します。

6
0
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
6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?