Power Automate DesktopでUI要素を安定して扱う方法
1. はじめに
Power Automate Desktop(PAD)で安定した自動化を作れるかどうかは、UI要素の扱い方にかかっています。
この記事では「仕組みの理解」と「安定して動かすための順番」を整理します。
2. UI要素・セレクターの本質
UI要素とは、PADが操作対象を特定するための手がかりです。
セレクターは「アプリ名 → ウィンドウ → 部品」を特定するためのタグ情報で、HTMLでいうXPath、Windowsでいうハンドルのような概念です。
自動生成セレクターは便利ですが、しばしば「動的ID」や「位置番号」が含まれ、不安定になります。
👉 安定化には 「必要な属性だけを残す」 ことがポイントです。
3. 安定動作させるための工夫
UI要素の例(セレクターの書き方)
body > table > tbody > tr > td > button[Text="詳細"]
body… ページ全体のルート要素table > tbody > tr > td… テーブル構造を順番に指定button[Text="詳細"]… テキストが「詳細」のボタンをクリック対象として指定
実務でよく使うセレクター例:
window[Title="請求書管理システム"] > pane > button[Name="ログイン"]
→ 「タイトルが『請求書管理システム』のウィンドウ内にある、Name 属性が『ログイン』のボタン」
3-1. UI要素が消える/変わるときの対応
- 要素が表示されるのを待つ → 「UI要素が存在するまで待機」アクション
- ダイアログや読み込み中など、一時的に消える場合にも有効
3-2. セレクターを安定させる編集の順番
- 自動生成を確認
- 不要な動的ID(例: div_12345)が入っていないか確認
- 属性を削る:ID/インデックスを削除、nameやtitleなど安定的な属性を残す
- 親要素を活用:同名ボタンが複数ある場合、親要素で文脈を絞り込む
- 部分一致に切り替える:属性が変動する場合 → "含む" や "次の値で開始" に設定
👉 「削る → 絞る → 親を使う → 部分一致」の流れを身につけると安定しやすい
▼ UI要素のセレクタを編集して安定性を高める例

▼ UI要素の演算子を変更して安定性を高める例

▼ UI要素で値に変数を利用して安定性を高める例
変数を選択後、下の「セレクタをプレビューする」エリアを確認して下さい。
その中に「%変数名%」という記述があると思いますが、もしそれが「"」で囲われていた場合は修正が必要です。
※「"%CarCode%"」など
右上の「テキスト エディター」のトグルをOFF→ONにして、セレクターを編集できる状態にし、該当箇所から「"」を消しましょう。
※「"%CarCode%"」→「%CarCode%」
例:
... > button[Class="%変数名%"] > ...
↓
... > button[Class=%変数名%] > ...
// %変数名%の周りにある「"」を消す!
4. 実践TIPS:それでも動かない時の代替手段
- セレクターの編集(属性削除/部分一致)
- キー操作で代用(例: Tab → Enter)
- 座標クリック(最終手段、解像度やウィンドウ位置で狂いやすい)
👉 「順番」を明示することで現場で迷わず対処可能
5. 実務でよくある不安定パターンと解決策
- パターン1:ボタンのIDが毎回変わる → 部分一致、親要素で補強
- パターン2:ロード中でUI要素が消える → 「UI要素が存在するまで待機」を挟む
- パターン3:ブラウザ更新で要素がリセットされる → 「新しいウィンドウ/タブ」アクションでキャプチャし直す
6. まとめ
不安定の原因は「セレクターに余計な情報が含まれている」ことが多いです。
編集の順番は 削る → 安定属性を残す → 親で補強 → 部分一致。
ダメなら「キー操作」、最終手段は「座標クリック」。
👉 この順番で対処すれば「昨日は動いたのに今日は動かない」を大幅に減らせます。
この記事を読めば、PADが動いたり動かなかったりする原因を論理的に判断できるようになります。
設計レビューや実装相談もお気軽にどうぞ。