6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【UiPath】セレクター取得で悩まない!実践的な解決策6選

Last updated at Posted at 2024-06-28

はじめに

UiPathを使って業務を自動化していくとどうしてもクリックや文字の取得ができないUI要素に遭遇することがあります。今回はそのようなUI要素を認識させる方法をご紹介します。

認識させたいUI要素

今回は例として、SAP GUIでよく見かけるテキストボックスの右にある入力ヘルプのアイコンをクリックしたいとします。

image.png

クリックアクティビティなどで要素を認識させようとするとこのようにテキストボックスを含めてセレクターが認識されてしまいアイコン部分だけ個別に要素を認識させることができません。

image.png

ちなみにアイコンをクリックするとこのような入力補助のダイアログボックスが表示されます。

image.png

それでは対処法を見ていきましょう。

試してほしいこと

① 既定以外のUIフレームワークを使う

UiPathではUI要素を独自の技術を用いて特定しています。ほとんどのケースではこのUiPathの独自技術で問題なくUI要素を特定できますが、もしできない場合はUIフレームワークを変更することで認識できなかったUI要素が認識できるようになることもあります。

UIフレームワークは、セレクターを取得する画面でF4キーを押すことで変更できます。F4キーを押す以外でも、選択オプションの右上のドロップダウンからも変更できます。

image.png

Active AccesibilityとUIオートメーションの詳細は以下のMicrosoft社提供のドキュメントをご確認ください。

UI オートメーションと Microsoft Active Accessibility

UiPath.UIAutomation.Activitiesのv23.4.xからUIフレームワークの初期値が「既定」から「自動」に代わり、適切なUIフレームワークが自動的に選択されるよう変更されています。

今回のUI要素ではUIフレームワークを変えても認識できませんでした。

② 最新のUiPath.UIAutomation.Activitiesのバージョンを使う

現在ご利用のバージョンでは認識できなかったUI要素が新しいバージョンでは認識できる可能性もあります。アクティビティパックをバージョンアップいただける環境の場合は、UI AutomationアクティビティパックをバージョンアップしてUI要素が認識されるかお試しください。

UI Automation のアクティビティ - リリースノート

image.png

今回のUI要素ではUIAutomationアクティビティパック v23.4.x以降を使うと認識するようになりました。

③ ショートカットキーを使う

ショートカットキーを使うことでクリックするのと同じ結果を得られる場合はキーボードショートカットアクティビティでクリックを代替します。

今回の例では、テキストボックスにフォーカスがある状態でF4キーを押下することで入力補助のダイアログボックスを表示できます。

image.png

今回のケースでは使えませんが、Tabキーで対象要素に移動して、Enterキーでクリックするという方法もあるかと思います。

④ クリックのオフセットを使う

要素が特定できない場合でも、クリックする位置を指定することができます。セレクターを取得する画面で要素を選択すると下のように緑で要素が囲われます。デフォルトでは緑枠の真ん中がクリックされますが、真ん中にある丸いアイコンを動かすことでクリックしたい位置を指定することができます。この仕組みを利用することで要素を特定できない場合でもクリックさせることができます。

image.png

入力モードがシミュレートの場合はクリックのオフセットを利用することができません。ハードウェアイベントまたはChromium API(ブラウザーの場合)を選択してください。

ウィンドウの表示サイズによってサイズが変わるようなUI要素の場合はオフセット位置がずれて使えない可能性があります。その場合は別の方法を検討してください。

クリックのオフセットはアクティビティのプロパティからピクセル単位で変更できます。アンカーポイントで基準となる位置を指定して、横位置(X)と縦位置(Y)で相対位置を指定します。

image.png

⑤ Computer Visionを使う

Computer Visionは機械学習に基づいてUI要素を特定する画像認識の仕組みです。Comupter Visionを使うことで通常のセレクターでは認識できないUI要素を認識することができます。

Automation Cloudを利用していないなどの理由でComupter Visionを利用できない場合は、Computer Visionローカルサーバーの利用を検討してください。

Computer Vision ローカル サーバー パッケージについて

統合ターゲットのComputer Visionを使う

セレクターを取得する画面に表示される選択オプションのCPUのようなアイコン(下のスクリーンショットの赤枠箇所)をクリックすることでComputer Visionを有効化できます。

UiPath.UIAutomation.Activitiesのv23.4.xから統合ターゲットにComputer Visionが組み込まれました。v23.4.x以前のアクティビティパッケージをご利用の場合はComupter Visionアクティビティをご利用ください。

image.png

Computer Visionを有効化して「すべてのCV要素を表示」をクリックすることで、Computer VisionがUI要素として認識している箇所を確認することができます。

image.png

目的の要素が認識されている場合はComputer Visionを使ってUI要素を特定させることができます。要素を選択して、「ターゲット」内のチェックを「Computer Vision」のみとします。

image.png

Computer Visionアクティビティを使う

統合ターゲットのComputer Visionが使えない、使えるが要素を認識できなかった場合は、Computer Vision用のアクティビティを使うことで解決する可能性があります。

image.png

Computer Vision用のアクティビティは必ずCV画面スコープアクティビティを置いて、その中にCVクリックCVテキストを取得等のUI操作系のアクティビティを配置して使います。

image.png

CV画面スコープアクティビティを配置したら、「画面上で指定」をクリックして操作対象のウィンドウを指定します。

image.png

続いて、CVクリックアクティビティをCV画面スコープアクティビティの中に配置します。配置したら、「スコープで指定」をクリックして要素を選択します。

image.png

すると、このようにアイコン部分だけ認識させることができました。

image.png

⑥ 画像認識を使う

UI要素を画像として認識させる方法です。Computer Visionも画像認識の技術ですが、こちらは機械学習を使わない純粋な比較をします。

画像認識は操作対象アプリケーションのUI変更や表示サイズの影響を受けやすく安定性に不安がある方法です。そのため、上記①から⑤を試してうまく行かなかったときの最後の手段としてご利用ください。

セレクターの取得時にマウスの左ボタンをクリックしたまま認識させたいUI要素を囲うことでUI要素を指定します。UI要素を選択すると、選択オプションのターゲットに「画像」のみが表示されます。

image.png

さいごに

どうしても認識させることができないUI要素に遭遇したときは自動化をあきらめずに上記を是非お試しください。

6
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?