1
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?

Power Automate DesktopでWeb一覧をスクレイピングするときに便利なOrdinal活用法

1
Posted at

Power Automate DesktopでWeb一覧をスクレイピングするときに便利なOrdinal活用法

1. 結論

Power Automate DesktopでWeb画面の一覧要素(ul / li)を順番にクリックしたい場合、JavaScriptやTab操作が効かなくても、UI要素セレクターのOrdinalを動的に変える方法が使えます。


2. エピソード

あるWeb管理画面で、ul内のliを順番に開く処理を作りました。

Webページのイメージ

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にループ変数を指定する

設定は次の流れです。

  1. 対象の行をUI要素として取得する
  2. UIセレクター画面を開く
  3. 要素の属性からOrdinalを有効にする
  4. Ordinalの値に${LoopIndex}を指定する

画像のように、Ordinalの値へ${LoopIndex}を指定します。

UIセレクターの編集画面

CED8F6D2-8EDF-4A5C-A8B4-FA1330031ED0.png

万策尽きたかと思いUIセレクターを覗いていたら、プロパティに変数を設定できことに気付きました。今回のケースはordinal調整がドンピシャでした。
これができると、一覧要素のループ処理がかなり楽になります。

公式ドキュメントでも、PADのWeb自動化ではJavaScript実行やカスタムセレクターの作成が説明されています。

参考:


4. 補足

今回のポイントは、UIセレクターの値を変数にできることです。

Ordinalに変数を入れると、同じ構造の要素を順番に操作できます。

今回は${LoopIndex}を使い、ループごとに対象を切り替えました。

そのため、ul配下に並んだliの取得や、li単位のWebスクレイピングにも応用できます。

1
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
1
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?