この記事では、Power Automate Desktop(以下、PAD)で、毎回変わるリンク(動的リンク)を自動クリックする方法を解説します。
色々調べながら試した結果、Webページから取得したデータをLoopで判定し、条件に一致したリンクを自動クリックする方法でできたので紹介します。
動画のように「一覧表の対象行だけ順番に処理する」というイメージになります。
今回はこの方法で実装できましたが、もっと効率的な方法や別のやり方があれば、ぜひメッセージで教えてください!
- Webページから一覧データを取得する方法
- Loopで条件判定する方法
- 条件に一致したリンクを自動クリックする方法
全体の流れ(フロー図)
今回は、Webシステムの一覧画面に以下のようなテーブルがあると仮定します。
「個数」が0以外の場合は、数字にアンカーリンクが設定されており、リンクをクリックすると製品の明細ページへ遷移し、明細データをダウンロードするとします。

処理の流れは以下のとおりです。
- テーブルを上から順番に確認する
- 個数が0以外の行を見つける
- 個数のリンクをクリックする
- 明細ページでファイルをダウンロードする
- 一覧画面へ戻る
- 次の行を確認する
- この処理を、テーブルの最終行まで繰り返す
全体のフローは下図のようになりました。

ポイントは、テーブルデータとLoop処理にIfアクションを追加していきます。
1.Webページからデータを抽出する
まずはブラウザを起動し、ラジオボタンが配置されているページを開きます。
アクションを1つずつ追加して設定することもできますが、レコーダーを使用すると簡単かつスムーズに設定できます。
新しいChromeを起動する
ブラウザを起動して、ラジオボタンのあるページ(http://〜)を[Browser]に保存します。
Webページからデータを抽出する
次に、「Webページからデータを抽出する」アクションを使って一覧テーブルを取得します。

| 項目 | 選択肢セットの入力 |
|---|---|
| Webブラウザーインスタンス | %Browser% |
| 抽出時にデータを処理する | ON |
| タイムアウト | 60 |
| データ保存モード | 変数 |
| 生成された変数 | DataFromWebPage |
アクションを追加後、ブラウザテーブル内の任意のセルをクリックすると「抽出プレビュー」が表示されます。
テーブル上で右クリックし、[HTMLテーブル全体を抽出する]を選択します。

これで、テーブルの一覧データを取得できました。
2.Webページのリンクをクリック
「Webページのリンクをクリック」アクションでUI要素を取得し、アンカーがある場合の処理を1回行っていきます。

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

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

| 項目 | 選択肢セットの入力 |
|---|---|
| 開始値 | 0 |
| 終了 | %DataFromWebPage.RowCount – 1% |
| 増分 | 1 |
| 生成された変数 | LoopIndex |
4.Ifアクションの設定
次に、Loop処理の中に「If」アクションを追加し、「2.Webページのリンクをクリック」の作業処理を囲むように追加します。

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

| 項目 | 選択肢セットの入力 |
|---|---|
| 最初のオペランド | %DataFromWebPage[LoopIndex][2]% |
| 演算子 | より大きい(>) |
| 2番目のオペランド | 0 |
「最初のオペランド」は、列番号[2]で指定していますが、項目名で指定してもOKです。
- 列番号で設定 → %DataFromWebPage[LoopIndex][2]
- 項目名で設定 → %DataFromWebPage[LoopIndex][‘個数’]
4.リンクのUI要素を動的に変更する
次に、個数をクリックした「Webページのリンクをクリックする」アクションに戻りUI要素のセレクターを変更します。
個数は毎回変わるため、固定値ではクリックできません。
そのため、取得したデータテーブルの行・列を参照し、対象の値(リンク)を特定します。

「Webページのリンクをクリック」をダブルクリックしてダイアログボックを表示します。
鉛筆マーク(編集)をクリックします。

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

〜 table > tbody > tr:eq(%LoopIndex%) >td:eq(2) >a
- tr:eq(%LoopIndex%)は、 Loopごとに行を切り替えます。
- td:eq(2)は、3列目を指定します。
- aは、そのセル内のリンクをクリックします。
この設定により、Loopで取得した行番号に応じて対象のリンクをクリックできるようになりました。
5.Elseの設定
最後に「Else」アクションを配置します。
今回は個数が0の場合は処理対象外とするため、Else側には何も設定しません。

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

- 右のUI要素ペインを選択
- 変更したいUI要素を選択し右クリック
- [名前の変更]をクリックし修正
まとめ
今回は、Power Automate Desktopで動的リンクを自動クリックする方法を紹介しました。
固定のUI要素では対応できない場合でも、Webページからデータテーブルを取得し、LoopとIfで条件判定することで対象のリンクを特定できます。
ぜひ実際の業務に合わせて活用してみてください。

