2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Power Automate for Desktop UI要素の構成(セレクター)と様々な指定

Last updated at Posted at 2025-03-09

今までPower AutomateのUI要素について記載してきましたが、その構成については触れてきませんでしたので、セレクター様々な指定方法について記載いたします。

セレクターとは

Webページやアプリケーション上の位置を特定する住所のようなものです。
(UI要素を指定するための番地です)

構成

セレクターは以下の構成となっています。
image.png

要素は階層構造を指す 「」で指定する必要があります。
上記の場合は、body→table→tbody→tr→td→buttonの順に親から子へ辿っていく階層構造です。
要素だけでは絞り込めない場合(同じ構成のボタンなどが複数ある場合など)に属性属性値を指定することで、UI要素の特定ができます。

要素の指定

以下記事で掲載しましたので、割愛します。
以下ご確認ください。

属性の指定

主に以下を指定することができます。

属性名 内容 例の意味
Text タグ内の文字列 button[Text="詳細"] 詳細の文字列のボタンを指定
Id ページ内で一意 tr[Id="row1"] row1のIDの行を指定
Class ページ内で複数 td[Class="nwtop contents"] nwtopとcontentsのClassが指定されているテーブルデータを特定
eq インデックス番号 button:eq(0) 1番めのボタンを指定

IdとClassはCSSで要素をスタイリング(見え方を統一)する用途としてWebページで使用されています。
Idは、ページ内で要素を一意に特定できる属性のため、ピンポイント指定が可能です。
Classは、ページ内で複数利用可能な属性のため、柔軟な指定が可能です。
Classはtd[Class="nwtop contents"]のように半角スペースで区切ることで、複数指定が可能です。

eqはOrdinal属性と呼ばれ、同条件で特定できるUI要素が存在した場合、同条件の何番目かを指定できる属性です。
eqの括弧内の数字は0から始まります。括弧内に変数を用いることができます。
変数を用いる方法については以下の記事をご確認ください。

もちろんText、Id、Class、eq以外の属性も指定可能です。
セレクター編集画面で①要素を選択した後にそれぞれ②属性を確認できます。
(この場合、Href、Titleが指定可能)
image.png

演算子

属性と属性値の間の演算子は、「=」以外にも指定することが可能です。
演算子には以下のようなものがあります。

演算子 意味 記載例
= 等しい button[Text="詳細"]
!= 等しくない button[Text!="詳細"]
*= 含む button[Text*="詳細"]
^= で始まる button[Text^="詳細"]
$= で終わる button[Text$="詳細"]
@= 正規表現に一致する button[Text@="詳細"]

上記はkinuasaさんの資料のP17を引用させていただいております(_ _)
UI要素について大変詳しく記載いただいており、去年たくさん参考にさせていただきました。

正規表現

また、属性値の指定には、正規表現を指定することが可能です。

私自身、去年フローを作成した際は、それほど正規表現を使用しなかったのですが、複雑なWebシステムにおいては、使うと楽にUI要素を取得できると思いましたので、個人的に便利と思うものを記載します。

文字クラス

指定 意味 パターン例 パターン例でのマッチ
[ first - last ] 文字範囲 button[Text@="[A-Z]utton 30" ] 例:Button 30にマッチ
. ワイルドカード(任意の一文字) button[Text@=".utton 30" ] 例:Button 30にマッチ
\d 任意の10進数 button[Text@="Button \d0" ] 例:Button 30にマッチ

アンカー

指定 意味 パターン例 パターン例でのマッチ
^ 開始 button[Text@="^Button " ] 例:Button 1にマッチ(Button 始まり)
$ 終了 button[Text@="30$" ] 例:Button 30にマッチ(30終わり)

グループ化構成体

内容 意味 パターン例 パターン例でのマッチ
(?=) 先読み button[Text@="Button(?= 10)"] 例:Button 10にマッチ(10の直前のButton )
(?<=) 後読み button[Text@="(?<=Button )10"] 例:Button 10にマッチ(Button の直後の10)

量指定子

内容 意味 パターン例 パターン例でのマッチ
* 直前の要素0回以上 button[Text@="Button \d*"] 例:Button 10にマッチ(Button 後の数字が0回以上)
+ 直前の要素1回以上 button[Text@="Button \d+"] 例:Button 10にマッチ(Button 後の数字が1回以上)
? 直前の要素0回または1回 button[Text@="Button \d?" ] 例:Button 10にマッチ(Button 後の数字が1回以上)
{n} 直前の要素n回 button[Text@="Button \d{2}"] 例:Button 10にマッチ(Button 後の数字が2回)
{n,} 直前の要素n回以上 button[Text@="Button \d{2,}"] 例:Button 10にマッチ(Button 後の数字が2回以上
{n,m} 直前の要素n回以上 m回以下 button[Text@="Button \d{2,3}"] 例:Button 100にマッチ(Button 後の数字が2回以上3回以下)

代替構成体

内容 意味 パターン例 パターン例でのマッチ
| Or条件 button[Text@="Button (1|2)0"] 例:Button 10 またはButton 20にマッチ

まとめ

・セレクターは要素属性属性値で構成される。
属性は要素だけでは特定できない場合に指定する。
・代表的な属性は、TextIdClasseqであるが、他の属性も指定可能。
・属性と属性値の間の演算子も指定可能。
正規表現でパターンにマッチしたUI要素の特定が可能。

参考文献

この記事は、以下のkinuasaさんの記事を一部参考にして記載しました。
去年はUI要素の取得に苦労したことが多かったのですが、こちらの記事をずっと拝見してなんとかフローを作成できました。
登壇資料のこうかいに感謝です。

2
2
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
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?