Power Automate for DesktopのUI要素の編集

Power Automate for DesktopでのUI要素の編集方法を記事にします。

### UI要素編集の必要性
UI要素は「UI要素の追加」よりマウス操作で取得できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3532455/6b6eb196-6b06-a43c-f0fc-1a9bfa19c2f7.png)
※以前記事にしました。

https://qiita.com/Masayanf/items/72b43980550accf504f2


しかしながら、UI要素が動的に生成され要素のIDや名前が毎回異なるWebシステムの場合や、Webページにおいてもレイアウト変更が行われる場合もあります。
このようなケースの場合、たいていUI要素が認識されずフロー実行の失敗に繋がりますが、**UI要素**の**編集**を行うことで回避できる場合があります。

今回は下記ページの赤枠の**詳細ボタン（日付2025-01-19）** を押したものの **「Webページのボタンを押します」** アクションでエラーとなった場合の対処を記載します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3532455/14201508-059a-beb6-1437-d208e8974494.png)
※下記の記事を拝見してCopilotにHTMLページを生成したものになります。

 https://qiita.com/maekawawawa/items/369a8dcc025dbe66a1df
 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3532455/2e36e596-9d4e-3fd2-5c23-016f3f164e4c.png)

### UI要素を確認
取得したUI要素を確認するには、赤枠の「詳細ボタン」をダブルクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3532455/9d2b6b43-88b3-1738-9c8c-eef1c1f68179.png)

すると詳細ボタンのUI要素は赤枠のようになっていることが分かります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3532455/eabb3bcf-c824-f691-9674-c763ba14a331.png)

このUI要素を押さえておきます。
```
 > body > table > tbody > tr > td > button[Text="詳細"]
```

### Chrome検証ツールで確認
どのブラウザにも検証ツールといわれるものがあるのですが、今回はChrome検証ツールを使用してHTMLファイルの中身を確認します。

:::note info
検証ツールとは、Webページの構造やスタイル、動作を確認・編集できるツールです。
:::

Chromeブラウザ上で以下手順を行います。

**①詳細ボタンを右クリック**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3532455/f2da3755-6912-8e77-aa78-faaa091df08a.png)

**②検証をクリック**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3532455/f5bd20c1-3869-9c62-0b31-ca5d8b06654e.png)

**③ハイライト部分を確認**
右側にHTMLコードが表示されるので、緑のハイライト部分が2025-01-19の詳細ボタンのタグであることを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3532455/b351e419-5a5b-3720-d7af-5089791d8a51.png)

**④UI要素がどのHTMLタグに相当するか確認**
Power Automate for Desktop上の詳細ボタンのUI要素は以下となっておりました。
```
 > body > table > tbody > tr > td > button[Text="詳細"]
```
上記のHTMLタグを「A」～「F」の記号と分類して検証ツール上でどこに相当するか確認します。
|記号|HTMLタグ|
|---|---|
|A|body|
|B|table|
|C|tbody|
|D|tr|
|E|td|
|F|button[Text="詳細"]|

すると「A」～「F」は以下の部分にそれぞれ記載されていることが分かります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3532455/acf8d664-ba33-7ccb-711c-74055a29ce14.png)

**⑤UI要素の修正箇所を特定**
Power Automate for Desktop上では「F」の部分がbutton[Text="詳細"]となっていますが、ボタンのテキストに「詳細」と記載された文字は複数あります。

2025-01-19の詳細ボタンをクリックさせるには、「F」の部分のbutton[Text="詳細"]に**他の条件**を追加する必要があります。

検証ツールの「F」の箇所は下記となっており、**URL** の「 https://weather.example.com/2025-01-19 」で2025-01-19を特定できそうです。

```
<button onclick="openLink('https://weather.example.com/2025-01-19')" mspad-previous-style="" style="">詳細</button>
```

「F」の部分を下記のとおり変更すると2025-01-19の詳細ボタンをクリックできそうです。

|変更前|変更後|
|---|---|
|button[Text="詳細"]|button[Text="詳細"][onclick*="https://weather.example.com/2025-01-19"]|


:::note info
変更後の内容について
「表示文字」＝「詳細」かつ「クリック時のURL」が「 https://weather.example.com/2025-01-19 」を含むという意味になります。
※「*=」は含むという意味の演算子
:::

### UI要素を修正する
Power Automate for DesktopでUI要素を実際に修正します。
UI要素を確認した画面上で、テキストエディターの切り替えボタンをオンにすることでテキスト入力可能となるので、UI要素の内容として「[onclick*="https://weather.example.com/2025-01-19"]」を追記します。
保存ボタンをクリックすることでUI要素の編集が完了します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3532455/5c2c3f98-cf6c-2d90-a7c8-ec16a8dfc765.png)

### 動作を確認
Power Automate for Desktopを起動して2025-01-19の「詳細」ボタンがクリックされることを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3532455/f2340b34-bc4f-d6ae-3713-bbb6da519c45.png)

### 【補足】検証ツールについて
検証ツールは、Webページの構造やスタイル、動作を確認・**編集**できるツールと紹介しました。
タグの内容を編集するには**タグ（ハイライト部分）** をクリックして **「F2」キー**を押すことで、擬似的にタグ内容の変更が可能です。

**ブレークポイント**を指定しての検証になりますが、**レアケース**の**Webデータ**の場合などに、擬似的にテストパターンのデータを作成するテストには有効そうです。
※本番のデータを使用したほうが良いことは言うまでもありません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3532455/f5863924-2e1d-e128-12a4-e662f3cbfb13.png)


### まとめ
・UI要素が動的に生成され要素のIDや名前が毎回異なるWebシステムの場合や、Webページレイアウトの修正には**UI要素の編集**が必要
・**Chrome検証ツール**を使用することで、Webページのタグを確認可能。
・Power Automate for DesktopのUI要素の確認画面で**テキストエディター**をオンにするとUI要素の修正可能。

UI要素を編集することで、急なWebページの変更に対処することが可能となりますのでご紹介しました。