16
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Power Automate DesktopでWebのUI要素有無を判断すると何かと便利!

Last updated at Posted at 2021-03-29

#はじめに

本記事は、前回の記事「Power Automate Desktop のWebUI要素を自作し、動的に活用する」を基に記載しています。
上記記事で、UI要素を動的に利用すること前提となりますので、ご承知ください。

#動的なUI要素の指定

目的のWebページに対し、指定するUI要素の有無が判断できると、

######テーブルに対し行数や列数を意識せずにデータを取得する

といったことが可能となります。

前回の記事では、テーブル構造を取得する際、UI要素を動的に設定することで実現可能と記載しました。
※スクレイピング機能による『テーブルまるっと取得』(勝手に命名しました)を行うと方法もあります

あらかじめ列数と行数を指定し、ループ処理で取得することになると思います。

image.png
このの表の場合は、4列×3行ですね。

発着 金額 乗換 早楽安
06:59→12:435時間44分 5,720円 乗換:4回 早安
06:59→13:136時間14分 5,720円 乗換:4回
08:07→13:435時間36分 5,720円 乗換:3回 楽安

なので
image.png

このような処理になります。

ですが、

####列数や行数が変動するようなテーブルを相手にする場合は、動的にループ回数を変える必要があります。
#####(または列数や行数を数えるのが面倒な場合も)

このような場合は、『Webページに次が含まれる場合』アクションを利用することが有効です。
このアクションは、「指定したUI要素が存在するか?」をチェックできますので、列や行の末端を検知可能となります。
image.png

下記のように構築すると、テーブルの行数や列数をフローへ設定する必要がなくなります。
image.png
UI要素より値を取得する前に、『Webページに次が含まれる場合』アクションで、UI要素の存在チェックをします。
存在しない場合=「1行の末端にたどり着いた」や「テーブルの末端にたどり着いた」と判断しループを抜けます。

UI要素には下記のように、ループのIndexを設定します。
image.png

#まとめ
『Webページに次が含まれる場合』アクションを活用することで、
・Webページの動作によるレイアウトの変化
等への対応が可能となります。

連続処理できそうだけど・・・Webの仕様が割と鬼畜!といった場合の解決の糸口になると思います。

16
12
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
16
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?