お客様との会議で「長押しの自動化はどう実現するのか?」と質問されましたが、すぐには解決策が思い浮かばず、ググっても見つかりませんでした。
さらに調べてテストして、解決方法を実現できたので、本記事にまとめました。もし同じ悩みを持っている方がいれば、ご参考になれば幸いです。
やりたいこと
以下のようなサイト(リンク)を対象にして、ロボットがシフトキーと左マウスキーを長押しする動作を自動化します。
左マウスキーの長押し
複数のアクティビティを組み合わせることで、マウスボタンの長押しを実現できます。まず、マウスボタンを押下し、指定した待機時間まで押し続けた後、ボタンを離します。
- 「クリック」 アクティビティ(入力モード:ハードウェア イベント、クリックの種類:NClickType.Down)
- 「待機」 アクティビティ(期間に長押しの時間を設定)
- 「クリック」 アクティビティ(入力モード:ハードウェア イベント、クリックの種類:NClickType.Up)
クリックアクティビティの入力モードのデフォルト設定(Chromium API)ではうまく動作しなかったため、手動操作を最も忠実に再現できる「ハードウェアイベント」の入力モードを使用しました。各入力モードの違いについては、以下の図をご参照ください。
(出典:【UiPath】入力モードの違い miya_gis(みやぎ)さん ありがとうございました。)
ワークフローを実行すると、マウスボタンが自動的に長押しされ、画面は以下のように変わります。
キーボードの長押し
キーボード操作の場合、「キーボードショートカット」アクティビティが使えますが、何秒間キーを押し続けるといった操作ができないため、別の方法を選びました。
選んだのは「文字を入力」アクティビティです。このアクティビティは文字の入力だけでなく、特殊なキーもサポートされています。さらに、キーの上げ下げ操作の送信もできます。例えば、
-
%[d(ctrl)]
- 特定のボタン(Ctrlキー)を押し下げます。 -
%[u(ctrl)]
- 特定のボタン(Ctrlキー)を持ち上げます。
詳細な内容はUiPathの公式ページをご参照ください。
実現方法は、マウスボタンの長押しと同じ流れです。
-
「文字を入力」アクティビティ(入力モード:ハードウェア イベント、テキスト:
%[d(Shift)]
) - 「待機」 アクティビティ(期間に長押しの時間を設定)
-
「文字を入力」アクティビティ(入力モード:ハードウェア イベント、テキスト:
%[u(Shift)]
)
ワークフローを実行すると、シフトキーが自動的に長押しされ、画面は以下のように変わります。
終わり
今回ご紹介した方法が、UiPath Studioの自動化における小技として、皆様の仕事の効率化に少しでも役立てば幸いです。今後も、役に立つ情報をお届けしていきますので、ぜひ参考にしてみてください。