UiPathのクリックを自動化する為のアクティビティは様々あります。
アプリケーション全般に対応するアクティビティやComputerVision、OCR、SAPなどに対応した専用のアクティビティなど多岐にわたります。
今回はアプリケーション全般に対応するアクティビティ『クリック(Click)』について説明します。
アクティビティの使用方法
今回はモダンで実装する方法で説明します。
Yahooの天気予報サイトを開いてクリックアクティビティの使用方法について見ていきましょう。(参照先:Yahoo!天気・災害)
1.Studioを起動してプロセスを開きます。
2.「アプリケーション/ブラウザーを使用(ApplicationCard)」をデザイナーパネルのシーケンス内にドラッグアンドドロップする
(※以下ApplicationCard)
3.自動化したいアプリケーションを選択する
4.クリックアクティビティをApplicationCardの実行にドラッグアンドドロップする
5.クリックしたいUI要素を取得する
6.プロパティを各種設定する
使用方法の参照
※ApplicationCard
ApplicationCardは例えばアカウントの作成や管理、サービスの検索や閲覧、注文や支払いの処理などが可能です。
また、特定の機能やサービスに関連する情報の閲覧や更新も行えます。
アクティビティ『クリック(Click)』のプロパティについて記載
クリックアクティビティの使用頻度の高いプロパティについて紹介します。
〇アクティブ化:クリックする前にUI要素をフォアグラウンドに移動し、クリックが可能な状態にすることができます。
〇入力モード:クリックの実行に使用するメソッドです。下記の4種類があります。
・Chromium API:
Chromiumベースのブラウザ(EdgeやChrome等)をAPIによって制御させるため、対象のアプリケーションにフォーカスする必要はなく、バッククラウンドで動作することが可能です。
UI要素内の項目をクリアにすることが可能で、特殊なキーボードショートカットを送信することができます。
このメソッドはモダンのみ利用可能で、ポップアップ等のWebページではない要素の自動化には利用できないことがあります。
Chromiumベースのブラウザを自動化させる際に利用されます。最も基本的な入力メソッドです。
・ハードウェアイベント:
APIを利用せず、画面上を実際にクリックする方式で、クリック行為自体は必ず実行されます。
特殊なキーボードショートカットを送信することが可能です。
ただし、自動化対象のアプリケーションがアクティブになっており、且つ処理対象のUI要素が画面に表示されている必要があります。
例えば、「ダウンロード」のクリックを実装する場合、別ウィンドウが重なっているとクリックに失敗します。
・シミュレート:
アクセシビリティAPIによって制御させるメソッドで、対象のアプリケーションにフォーカスする必要はありません。
ただし、特殊なキーボードショートカットを送信することができません。
・ウィンドウメッセージ:
Win32APIによって制御させるメソッドで、対象のアプリケーションにフォーカスする必要はなく、バックグラウンドで動作することが可能です。特殊なキーボードショートカットを送信することが可能です。
ただし、UI要素内の項目をクリアにすることができません。処理対象のUI要素毎に対応可否が分かれており、全ての要素に対して利用できるわけではありません。
利用状況として、ChrimiumAPIとシミュレートで動作しないアプリケーション(特にデスクトップアプリケーション)やUI要素に対して利用されるメソッドです。
・無効な要素を変更:
選択すると、ターゲット要素が無効化されているアクティビティはアクションを実行します。
対象のアプリケーションの技術を用いてクリックをシミュレートします。
この入力方法は3つの中で最も早く、バックグラウンドで動作します。
ハードウェアドライバを用いてクリックを実施します。これは入力モードの種類の中でも最も遅く、バックグラウンドで動作しませんが、すべてのデスクトップアプリに対応しています。
・クリックの種類:
実行するクリックの種類です。ワンクリックやダブルクリック以外にもマウスダウンやマウスアップの選択が可能です。
・マウスボタン:
クリックアクションに使用するマウスボタン(左、中央、右)を指定します。規定はマウスの左ボタンです。
クリックアクティビティを使用する際の注意点
最も注意するべきポイントを挙げます。それはセレクターをUI要素を取得するための重要な要素です。
セレクターが正確であればあるほどクリックアクティビティの精度は向上します。
セレクタの文字列の中には動的に変化する属性もありますので、不要な情報を削除したり、ワイルドカード(*)を使用して、精度をあげていきましょう。