ブログの夏|会社員の副業ライフハックメディア!

Power Automate Desktop|動的リンクを自動クリックする方法【Loopで条件判定】

当ページには広告が含まれています
Power Automate Desktop|動的リンクの自動クリック

この記事では、Power Automate Desktop(以下、PAD)で、毎回変わるリンク(動的リンク)を自動クリックする方法を解説します。

色々調べながら試した結果、Webページから取得したデータをLoopで判定し、条件に一致したリンクを自動クリックする方法でできたので紹介します。

動画のように「一覧表の対象行だけ順番に処理する」というイメージになります。

なつP

今回はこの方法で実装できましたが、もっと効率的な方法や別のやり方があれば、ぜひメッセージで教えてください!

この記事でわかること
  • Webページから一覧データを取得する方法
  • Loopで条件判定する方法
  • 条件に一致したリンクを自動クリックする方法
目次

全体の流れ(フロー図)

今回は、Webシステムの一覧画面に以下のようなテーブルがあると仮定します。

「個数」が0以外の場合は、数字にアンカーリンクが設定されており、リンクをクリックすると製品の明細ページへ遷移し、明細データをダウンロードするとします。

個数のアンカーリンク(サンプルページ)

処理の流れは以下のとおりです。

  1. テーブルを上から順番に確認する
  2. 個数が0以外の行を見つける
  3. 個数のリンクをクリックする
  4. 明細ページでファイルをダウンロードする
  5. 一覧画面へ戻る
  6. 次の行を確認する
  7. この処理を、テーブルの最終行まで繰り返す

全体のフローは下図のようになりました。

PAD|動的リンクを自動クリック【Loopで条件判定】全フロー

ポイントは、テーブルデータLoop処理Ifアクションを追加していきます。

1.Webページからデータを抽出する

まずはブラウザを起動し、ラジオボタンが配置されているページを開きます。

アクションを1つずつ追加して設定することもできますが、レコーダーを使用すると簡単かつスムーズに設定できます。

新しいChromeを起動する

ブラウザを起動して、ラジオボタンのあるページ(http://〜)を[Browser]に保存します。

本記事ではGoogle Chromeを使用しています。
Microsoft Edgeを使用する場合は、対応するブラウザアクションに読み替えてください。

Webページからデータを抽出する

次に、「Webページからデータを抽出する」アクションを使って一覧テーブルを取得します。

PAD|Webページからデータを抽出する(アクション)
項目選択肢セットの入力
Webブラウザーインスタンス%Browser%
抽出時にデータを処理するON
タイムアウト60
データ保存モード変数
生成された変数DataFromWebPage

「抽出時にデータを処理する」は、取得したデータをPAD側で余分な空白や改行を除いて整理する機能です。

アクションを追加後、ブラウザテーブル内の任意のセルをクリックすると「抽出プレビュー」が表示されます。

テーブル上で右クリックし、[HTMLテーブル全体を抽出する]を選択します。

PAD|HTMLテーブル全体を抽出する

これで、テーブルの一覧データを取得できました。

2.Webページのリンクをクリック

「Webページのリンクをクリック」アクションでUI要素を取得し、アンカーがある場合の処理を1回行っていきます。

PAD|「Webページのリンクをクリック」のアクションフロー

3.Loop処理

「2.Webページのリンクをクリック」で作成した部分を囲むように、Loopアクションを追加します。

PAD|Loop処理のアクション

Loopの設定は以下の内容にしています。

PAD|変数のプロパティからの選択
項目選択肢セットの入力
開始値0
終了%DataFromWebPage.RowCount – 1%
増分1
生成された変数LoopIndex

RowCountはテーブルの行数を取得します。
今回の例のように7行のデータがある場合、行番号は「0、1、2、…6」となるため、Loop内の終了の値には %DataFromWebPage.RowCount – 1% を指定します。

4.Ifアクションの設定

次に、Loop処理の中に「If」アクションを追加し、「2.Webページのリンクをクリック」の作業処理を囲むように追加します。

PAD|Ifアクションの設定

「If」アクションの設定は以下のようになっています。

PAD|Ifアクション(ダイアログボックス)
項目選択肢セットの入力
最初のオペランド%DataFromWebPage[LoopIndex][2]%
演算子より大きい(>)
2番目のオペランド0

「最初のオペランド」は、列番号[2]で指定していますが、項目名で指定してもOKです。

  • 列番号で設定 → %DataFromWebPage[LoopIndex][2]
  • 項目名で設定 → %DataFromWebPage[LoopIndex][‘個数’]

4.リンクのUI要素を動的に変更する

次に、個数をクリックした「Webページのリンクをクリックする」アクションに戻りUI要素のセレクターを変更します。

個数は毎回変わるため、固定値ではクリックできません。

そのため、取得したデータテーブルの行・列を参照し、対象の値(リンク)を特定します。

STEP
ダイアログボックを表示し編集
PAD|UI要素 - セレクターの編集方法

「Webページのリンクをクリック」をダブルクリックしてダイアログボックを表示します。

鉛筆マーク(編集)をクリックします。

STEP
テキストエディターをONにする
PAD|UI要素 - セレクターの編集(テキストエディターON)

UI要素のセレクターの画面で、テキストエディターを[ON]にします。

STEP
セレクターの行・列・アンカー部分を変更
PAD|UI要素 - セレクターの編集

〜 table > tbody > tr:eq(%LoopIndex%) >td:eq(2) >a

  • tr:eq(%LoopIndex%)は、 Loopごとに行を切り替えます。
  • td:eq(2)は、3列目を指定します。
  • aは、そのセル内のリンクをクリックします。

この設定により、Loopで取得した行番号に応じて対象のリンクをクリックできるようになりました。

行番号と同様に、列番号も0から始まるため「2」は3列目を表します。

5.Elseの設定

最後に「Else」アクションを配置します。

今回は個数が0の場合は処理対象外とするため、Else側には何も設定しません。

PAD|Elseアクション

以上で設定は完了です。

変数名を整える

フロー内のUI要素名がクリックしたもの(例:Anchor ‘5’)になっているので、UI要素ペインをから名前を変更し管理しやすくすることもできます。

PAD|UI要素の名前の変更方法
  1. 右のUI要素ペインを選択
  2. 変更したいUI要素を選択し右クリック
  3. [名前の変更]をクリックし修正

まとめ

今回は、Power Automate Desktopで動的リンクを自動クリックする方法を紹介しました。

固定のUI要素では対応できない場合でも、Webページからデータテーブルを取得し、LoopとIfで条件判定することで対象のリンクを特定できます。

ぜひ実際の業務に合わせて活用してみてください。

Power Automate Desktop|動的リンクの自動クリック

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
目次