Power Automate DesktopでWeb一覧をスクレイピングするときに便利なOrdinal活用法
1. 結論
Power Automate DesktopでWeb画面の一覧要素(ul / li)を順番にクリックしたい場合、JavaScriptやTab操作が効かなくても、UI要素セレクターのOrdinalを動的に変える方法が使えます。
2. エピソード
あるWeb管理画面で、ul内のliを順番に開く処理を作りました。
Webページのイメージ
試した方法は、次の2つです。
| 方法 | 結果 |
|---|---|
| 「Web ページで JavaScript 関数を実行する」 |
Hello Worldすら空白で返った |
「キーの送信」で{Tab}を送信 |
ブラウザー上では移動できるが、PAD側で期待した要素として認識されなかった |
RPAはスムーズにいかないのが常。特にWebスクレイピングも絡むと。
JavaScriptでDOMを読む方針も、Tabキーで順番に移動する方針も、今回の画面では安定しませんでした。
ブラウザ拡張機能が動作に干渉する、という報告があるようです。原因は改めて調査します。
3. ハウツー
使った方法
やったことは1つです。
UI要素セレクターのOrdinalに、変数を入れました。
これで、クリック対象をループごとに切り替えられます。
固定値の Ordinal
→ ずっと同じ要素を見る
変数入りの Ordinal
→ 1件目、2件目、3件目……と順番に見る
今回は、変数として${LoopIndex}を使いました。
ul配下に同じ構造のliが並んでいる画面なら、li単位の取得やWebスクレイピングにも使えます。
UIセレクターでOrdinalにループ変数を指定する
設定は次の流れです。
- 対象の行をUI要素として取得する
- UIセレクター画面を開く
- 要素の属性から
Ordinalを有効にする -
Ordinalの値に${LoopIndex}を指定する
画像のように、Ordinalの値へ${LoopIndex}を指定します。
UIセレクターの編集画面
万策尽きたかと思いUIセレクターを覗いていたら、プロパティに変数を設定できことに気付きました。今回のケースはordinal調整がドンピシャでした。
これができると、一覧要素のループ処理がかなり楽になります。
公式ドキュメントでも、PADのWeb自動化ではJavaScript実行やカスタムセレクターの作成が説明されています。
参考:
- Webページを自動化する - Power Automate
- Run JavaScript function on web page action fails to execute - Power Automate
- カスタム セレクターを作成する - Power Automate
4. 補足
今回のポイントは、UIセレクターの値を変数にできることです。
Ordinalに変数を入れると、同じ構造の要素を順番に操作できます。
今回は${LoopIndex}を使い、ループごとに対象を切り替えました。
そのため、ul配下に並んだliの取得や、li単位のWebスクレイピングにも応用できます。

