9
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【UiPath】ブラウザー操作の自動化で遭遇するエラーの原因と対策

Last updated at Posted at 2023-09-29

はじめに

本記事では、UiPathを使ってブラウザー操作を自動化した際に発生するエラーの原因、確認ポイントまたは解決策について書いていきます。

よく発生するエラー

1. ブラウザーと通信できません。UiPath 拡張機能をご確認ください

英語メッセージ : Cannot communicate with the browser, please check the UiPath extension.
image.png

原因

ブラウザーを開くまたはアプリケーション/ブラウザーを使用アクティビティでブラウザーを起動したがUiPathブラウザー拡張機能の準備が出来ておらずタイムアウトとなった場合に発生します。

確認ポイント

A. エラーが毎回発生する場合

ブラウザー拡張機能のインストールが正しく行われていない可能性があります。下記を確認いただき、いずれかに該当する場合は、弊社公式ドキュメントのトラブルシューティングをご確認ください。

  • ご利用になるブラウザー用のUiPath拡張機能はインストールされていますか?
  • ブラウザーが起動している状態でタスクマネージャーを開いたとき、ChromeNativeMessaging.exe というプロセスを見つけることが出来ますか?
  • ComSpecという環境変数は定義されていますか?

B. エラーが出たり出なかったりする場合

ロボット実行端末のスペックが低い等の理由でブラウザー起動時の初期化処理が間に合わずタイムアウトしている可能性があります。下記のいずれかでエラーが解消するか確認ください。

  • UiPath 拡張機能以外の拡張機能を無効にする
  • (URの場合) ブラウザーを開くアクティビティの前に待機アクティビティを配置する
  • (モダンデザインの場合) アプリケーション/ブラウザーを使用アクティビティのタイムアウトプロパティの値を30秒より大きくする。デフォルトタイムアウト値は30秒です
  • (クラシックデザインの場合) UiPath.UIAutomation.Activitiesアクテビティパッケージをアップグレードする

下記バージョン以降、ブラウザーを開くアクティビティのデフォルトタイムアウト値が 20秒から60秒に延伸されています。
また、UIPATH_OPEN_BROWSER_TIMEOUT_SECONDS環境変数によりタイムアウト値を変更出来るようになりました。

ご利用バージョン アップグレードバージョン
v23.4.x v23.4.4 以上
v22.10.x v22.10.8 以上
v22.4.x v22.4.10 以上
v21.10.x v21.10.8 以上
v20.10.x v20.10.13 以上

2. このセレクターに対応する UI 要素が見つかりませんでした

英語メッセージ : Could not find the UI element corresponding to this selector.
image.png

原因

エラーメッセージの通りとなりますが、指定されているセレクターに対応するUI要素を特定することができずタイムアウトとなった場合に発生します。

解決策

UI要素を特定できない理由は様々です。下記いずれかで解決するか確認ください。

A. セレクターにidxtitle等、実行毎に値が変わる属性が指定されている

  • 動的に変わる属性の値をワイルドカードまたは変数に置き換える
  • 動的に変わる属性をセレクターから外して、UI要素が一意に特定できるようにアンカーを設定する

B. 操作対象のUI要素は特定の条件下でのみ表示される

  • 要素が出現したときアプリのステートを確認アクティビティ等を使用して操作対象が表示されたときのみ該当アクティビティを実行するようにする

C. ロボット実行端末のスペックが低くてブラウザーの画面描画が遅い

  • 該当アクティビティのプロパティ準備完了まで待機INTERACTIVEまたはCOMPLETEを指定する
  • それでも解決しない場合は、解決策Bと同様要素が出現したときアプリのステートを確認アクティビティ等を使用して操作対象のUI要素が表示されてことを確認したのち該当アクティビティが実行されるようにする

下記弊社公式ブログのWaitForReadyの項が参考になります。

3. この UI 要素は有効ではありません

英語メッセージ : UiElement is no longer valid.
image.png

原因

要素を探すアクティビティ等からUiPath.Core.UiElement型の参照を取得後に画面遷移等によりブラウザ画面構成要素が更新されている状態で、保持しているUiPath.Core.UiElement型の参照を利用してクリック等の操作を行うと発生します。

解決策

UiPath.Core.UiElement型の参照を再度取得しなおしてから利用してください。

4. UI ノードが無効です

英語メッセージ : Invalid UI node.
image.png

原因

ブラウザーを起動した時点では存在していたUI要素がブラウザーまたはタブが閉じてしまったため通信が出来ない、ロボット実行端末のスペックが低い、一時的な後負荷状況等の理由で該当UI要素からの応答を受け取ることができない等、何らかの理由によりUI要素を特定することが出来ない場合に発生します。

確認ポイント

  • スクリーンショットを作成アクティビティを使用して、エラー発生時に該当UIの操作時にブラウザーまたはタブが閉じていないことを確認ください
  • 要素の存在を確認アクティビティを該当アクティビティの前に配置して操作対象が表示されたときのみ該当アクティビティを実行するようにする
  • UiPath.UIAutomation.Activitiesのバージョンをv23.4.4以上にアップグレードすることで事象が改善するか確認ください。このバージョンより、内部通信タイムアウト値が5秒から30秒に延伸されているため救済される可能性があります

5. 画面の範囲外にある UI 要素には入力を送信できません

英語メッセージ : Cannot send input to UI element because it is outside of screen bounds.
image.png

原因

入力メソッドにハードウェアイベントを利用している状況下で、操作対象のUI要素が何らかの理由により画面表示範囲内に表示されていないためクリック等の操作に失敗しています。

入力メソッドについての詳細は、弊社ドキュメントをご確認ください。また、UiPath 2021、2022 MVPである@miya_gisさんがとてもわかりやすく纏めてくださっているので是非ご確認ください。

解決策

  • 対象アクティビティの入力メソッドをバックグラウンド実行可能なものに変更してください。 モダンアクティビティの場合は、Chromium APIまたはシミュレート、クラシックアクティビティの場合はシミュレートがおすすめです。
  • その他、ワークフロー開発端末と実行端末の画面解像度及び表示スケールを揃えることで本事象が発生しなくなる可能性もあります。

おわりに

皆様のUiPathでの開発に少しでもお役に立てれば幸いです。本記事で取り扱っていないエラー原因やその他エラーについて情報をお持ちの方がいらっしゃれば是非コメントください。

9
5
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
9
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?