#はじめに
本記事は、前回の記事「Power Automate Desktop のWebUI要素を自作し、動的に活用する」を基に記載しています。
上記記事で、UI要素を動的に利用すること前提となりますので、ご承知ください。
#動的なUI要素の指定
目的のWebページに対し、指定するUI要素の有無が判断できると、
######テーブルに対し行数や列数を意識せずにデータを取得する
といったことが可能となります。
前回の記事では、テーブル構造を取得する際、UI要素を動的に設定することで実現可能と記載しました。
※スクレイピング機能による『テーブルまるっと取得』(勝手に命名しました)を行うと方法もあります
あらかじめ列数と行数を指定し、ループ処理で取得することになると思います。
発着 | 金額 | 乗換 | 早楽安 |
---|---|---|---|
06:59→12:435時間44分 | 5,720円 | 乗換:4回 | 早安 |
06:59→13:136時間14分 | 5,720円 | 乗換:4回 | 安 |
08:07→13:435時間36分 | 5,720円 | 乗換:3回 | 楽安 |
このような処理になります。
ですが、
####列数や行数が変動するようなテーブルを相手にする場合は、動的にループ回数を変える必要があります。
#####(または列数や行数を数えるのが面倒な場合も)
このような場合は、『Webページに次が含まれる場合』アクションを利用することが有効です。
このアクションは、「指定したUI要素が存在するか?」をチェックできますので、列や行の末端を検知可能となります。
下記のように構築すると、テーブルの行数や列数をフローへ設定する必要がなくなります。
UI要素より値を取得する前に、『Webページに次が含まれる場合』アクションで、UI要素の存在チェックをします。
存在しない場合=「1行の末端にたどり着いた」や「テーブルの末端にたどり着いた」と判断しループを抜けます。
#まとめ
『Webページに次が含まれる場合』アクションを活用することで、
・Webページの動作によるレイアウトの変化
等への対応が可能となります。
連続処理できそうだけど・・・Webの仕様が割と鬼畜!といった場合の解決の糸口になると思います。