「セレクターは間違っていないのに、なぜかボタンクリックが動作しないんだけど…。」という人に試してほしい対処方法を解説します。
Power Automate for desktopバージョン:2.22
それでは、どうぞ!
ボタンがクリックできないときに試すこと2点
[Click]アクティビティのデフォルトのプロパティは下図の通りです。[クリックをシミュレート]と[ウィンドウメッセージを送信]に何も選択されていません。
ワークフローを実行すると、マウスポインタ―がボタンの上に移動してクリックが行われます。これがデフォルトの動作です。
この動作でボタンがクリックできなかったときのプロパティ設定を解説します。
試すこと1点目:[クリックをシミュレート]をTrueにする
試してほしいことの1つ目は、[クリックをシミュレート]を「True」にすることです。
ワークフローを実行すると、マウスポインタ―は動かずにクリックが実行されます。
試すこと2点目:[ウィンドウメッセージを送信]をTrueにする
[クリックをシミュレート]を「True」でもうまく動作しなかったときは[ウィンドウメッセージを送信]を「True」にしてください。
[クリックをシミュレート]と併用しようとすると、「設定できるオプションはクリックをシミュレートおよびウィンドウメッセージを送信のいずれか1つのみです」というエラーが表示されるので、[クリックをシミュレート]と同時には使うことができません。
これらの設定が意味するもの
これらの設定の意味をおおよそ理解することで、設定に迷わなくなるので解説します。
[クリックをシミュレート]は対象アプリケーションの仕組みを利用します。高速かつバックグラウンドで動作します。注意点は動作しないWebサイトがあることです。テストを行って、動作を確認しましょう。
もう少し詳しく「【Memo】3つのクリックモード」としてまとめました。
- デフォルト
ハードウェア(キーボードやマウス)のデバイスドライバーにWin32API経由で送信する。 - クリックをシミュレート
対象アプリケーションの仕組みを利用する。具体的には、Microsoft社のUIオートメーションというフレームワークを使って操作を行う。対象のUI要素がUIオートメーションでサポートしていない場合は、Microsoft社のActive Accessibilityというフレームワークを使う。
UIオートメーションとMicrosoft Active Accessibilityについては、以下のURLを参照してください。
URL UIオートメーションと Microsoft Active Accessibility - ウィンドウメッセージを送信
Windowsメッセージ(例えば、WM_KEYDOWN、WM_KEYUP、WM_LBUTTONDOWN、WM_LBUTTONUPなど)をセレクターで指定されたウィンドウにWin32API経由で送信する。
まとめ
[クリック]アクティビティはデフォルトのプロパティ設定のまま動作することがほとんどですが、たまに「なぜかクリックが効かない」というときがあります。
そんなときは、まず[クリックをシミュレート]を「True」にしてみてください。
僕の経験上動作する確率はかなり高いです。
他にもUipathを利用する方法や困った時の解決方法を書いているので併せてお読みください。