見出し画像

PowerAutomateDesktopでクリックしてもリンクしないUI要素をどうにかする

PowerAutomaeteDesktopです。(以下、PADです)
PADは簡単便利で無料なので、大変勝手が良いのですが、すべてのWebサイトが、a hrefでリンクを持っているわけではありません。

そのため、「Webページのリンクをクリックします」を使ってUI要素をクリックしても「しかしなにもおこらなかった」状態になることもしばしば。。

そのようなときは、

  1. リンクするボタンの画像をクリック(「マウスを画像に移動します」)

  2. タブタブタブ・・・エンター!(「キーの送信」)

  3. JavaScriptでクリックさせる

が、いまのところ私の対処法でして、今日は上記の3の紹介です。
(PowerAutomateバージョン 2.15.00565.21347で実施)

WebページをJavaScriptで操作

JavaScriptを使用するアクションは2つありますが、ブラウザ操作のほうです。
「ブラウザー自動化」>「WebページでJavaScript関数を実行します」

アクションを挿入すると、すでに「function ExecuteScript() { /*your code here, return something (optionally); */ }」が入力されていますが、無視してクリック動作を入れます。

(1) IDでUI要素を指定する場合

document.getElementById("ClickButton").click()

これでOKです。コードにある「"ClickButton"」は任意のIDです。クリックしたい対象のUI要素を右クリックして、
・Chromeなら「検証」
・Edgeなら「開発者ツールで調査する」
より、そのUI要素のIDを調べます。

IDを調べる様子

これで調べたIDを、先ほどの任意の値に入れ込めばOKです。

(2) ClassでUI要素を指定する場合

必ずしもUI要素にIDが割り当てられているわけではありませんので、Classで特定する方法も記述しておきます。

document.getElementsByClassName("menuButton")[0].click()

さきほどのIDの場合は要素を返していましたが、今回はリストを返すことになるので記述が異なります。(Element"s"であることに注意)
任意のClass名の()の後ろに「[0]」とついていますが、必ずしもゼロではありません。ブラウザのコンソール画面で「.click()」を消した状態で、「0,1,2,3・・」と数字を変えれば、自分が指定したいUI要素にたどり着くはずです。(もちろんゼロで良いときもあるでしょう)

まとめ

これまでは、タブタブエンターを多用していましたが、画面のちょっとしたズレでトンデモナイところをクリックして、そのままフローが継続されたりしたので、どうにか確実に生きたいと思ってJavaScript方式をまとめました。

同じことを思っていた人の参考になれば何よりです。

この記事が参加している募集

つくってみた

ちょっと役立ったなと思ったら、サポートいただけると嬉しいです。マウスを買い替える資金になります!