- リリース ノート
- 基本情報
- セットアップと構成
- オートメーション プロジェクト
- 依存関係
- ワークフローの種類
- ファイルの比較
- オートメーションのベスト プラクティス
- ワークフローのデザイン
- UI Automation
- プロジェクトの構成
- オートメーションのライフサイクル
- ソース管理との連携
- デバッグ
- 診断ツール
- ワークフロー アナライザー
- 変数
- 引数
- インポートされた名前空間
- レコーディング
- UI 要素
- 制御フロー
- セレクター
- オブジェクト リポジトリ
- データ スクレイピング
- 画像とテキストの自動化
- Citrix テクノロジの自動化
- RDP の自動化
- SAP のオートメーション
- VMware Horizon の自動化
- ログ
- ScaleCoordinates 移行ツール
- ScreenScrapeJavaSupport ツール
- Webdriver プロトコル
- Studio Pro
- 拡張機能
- トラブルシューティング
UI Automation
場合によっては、通常使用する手動のルーチンが自動化には最適ではないことがあります。特定のアプローチに決める前に、アプリケーション自体の動作と UiPath の統合/機能を慎重に確認してください。
UI 操作の自動化機能は、ロボットとアプリケーションが同一のマシンで実行される場合に、最大限に活用することができます。これは、UiPath がアプリケーションに搭載されているテクノロジと直接統合されることで、要素の特定、イベントのトリガー、データの取得をバックグラウンドで実行できるためです。
UiPath がアプリケーション上で [クリック] または [入力] アクティビティを実行するメソッドは 3 つあります。これらは、UI 操作の自動化を扱うすべてのアクティビティのプロパティとして表示されます。
[入力をシミュレート] および [クリックをシミュレート] プロパティ
[入力をシミュレート] または [クリックをシミュレート] プロパティを選択した場合、Studio はアプリケーションに接続し、示された UI 要素 (ボタン、テキスト ボックスなど) のイベント ハンドラーをトリガーします。結果は、Web ブラウザーやビジネス アプリケーションなどのターゲット テクノロジに常に依存します。
次のようなアクティビティに [入力をシミュレート] や [クリックをシミュレート] を有効化した場合、実行前にターゲット UI 要素のステートを確認することをお勧めします。
また、以下のアクティビティでも [入力をシミュレート] または [クリックをシミュレート] プロパティが既定で有効になっており変更できないため、同様の確認をお勧めします。
[無効な場合でも動作を実行] プロパティ
このプロパティは、対象となるアクティビティが、無効化された要素と対話するかどうかを設定します。このプロパティは、SimulateType または SimulateClick が有効な場合にのみ考慮されることに注意してください。AlterIfDisabled プロパティは、以下のアクティビティが備えています。
SendWindowMessages プロパティ
[ウィンドウ メッセージを送信] プロパティを選択した場合、Studio はアプリケーションのメッセージ ループにイベント詳細をポストし、アプリケーションのウィンドウ プロシージャが内部でこれをターゲットの UI 要素にディスパッチします。
上記のいずれのオプションも選択しなかった場合、Studio はハードウェア イベントのシグナルをシステムに送り、オペレーティング システムからターゲット要素に向けて詳細をディスパッチさせます。
これらのメソッドは、上記の順序で試す必要があります。これは、[クリックをシミュレート] プロパティと [ウィンドウ メッセージを送信] プロパティは高速、かつ、バックグラウンドでも動作しますが、アプリケーションに搭載されているテクノロジに左右されることが多いためです。
Studio は人間同様の操作 (マウスのポイントを動かす、特定の場所をクリックするなど) を実行するため、ハードウェア イベントは 100% 動作します。ただし、この場合、自動化の対象となっているアプリケーションが画面に表示されている必要があります。これは、ユーザーがオートメーションの妨げになるリスクがあるため、デメリットと見なされることもあります。
自動的に生成されたセレクターから要素を特定するために提示された属性値が不安定な場合があります。こうした場合には、手動で処置を行い、セレクターを調整する必要があります。信頼できるセレクターであれば、開発、試験、本番といった環境の違いやアプリケーションにログインしたユーザー名にかかわらず、あらゆる状況で常に同じ要素を正しく特定します。
セレクター エディターまたは UI Explorer でセレクターを改善する場合、次のヒントを参考にしてください。
- 不安定な値を持つ属性を、安定していて意味のある値を持つ属性に置き換える。
- 属性値の可変部分をワイルドカード (*) に置き換える。
- 属性の値がすべてワイルドカードになっている場合 (例:
name=’*’
)、そうした属性は削除する。 - 属性の編集が有効でない場合、中間コンテナーの追加を試みる。
-
値が 1 または 2 など非常に小さい場合を除き、
idx
属性の使用を避ける。
上記のセレクターでは、ページ タイトルに、セレクターが記録された日付への参照が含まれており、一部の属性がランダムに見える ID を含んでいることがわかります。属性を調整すれば、UiPath レコーダーが提示するものよりも優れたセレクターが得られます。
ファイル パスと同様に、セレクターはフル パスまたは部分 (相対) パスで表すことができます。完全セレクターは、ウィンドウまたは HTML 識別子で始まり、デスクトップ全体で要素を特定するために必要な情報をすべて備えていますが、部分セレクターは、要素が属するトップレベルのウィンドウを指定するアタッチ/コンテナー アクティビティ内でのみ機能します。
- ブラウザーを開く
- アプリケーションを開く
- ブラウザーにアタッチ
- ウィンドウにアタッチ
詳しくは、完全セレクターと部分セレクターをご覧ください。
完全セレクターではなく、部分セレクターを持つコンテナーを使用することには、いくつかのメリットがあります。
- 同じアプリケーションで動作するアクティビティを視覚的にグループ化する。
- トップのウィンドウを毎回探す必要がないため、速度が若干向上する。
- 手動更新が必要な場合に、トップレベルのセレクターを管理しやすい。
- 同じアプリケーションの異なる 2 つのインスタンスを操作する場合には必須となる。
画面上の UI 要素を特定するセレクターやキーボード ショートカットなどが機能しない場合に最終手段として使用するのが、画像認識です。画像マッチングでは、要素が画面上で完全に表示されている必要があります。また、開発中と実行時とで、表示されている詳細がすべて同じでなければなりません。このため、画像オートメーションを利用する場合には、プロセスの信頼性を確保するように細心の注意を払います。画像の選択範囲が必要以上に多すぎても少なすぎても、画像が見つからなかったり、誤検出が発生しやすくなります。
画像マッチングは、デスクトップ テーマや画面解像度など、環境の違いに左右されやすいものです。Citrix でアプリケーションを実行する場合、ワークフローを記録した時と同等、またはそれよりも高い解像度を維持する必要があります。もしくは、キャプチャされた画像の精度を若干下げることにより、小さな画像のゆがみを補正できます。特に、相対位置でのクリックやスクレイピングなど、座標ベースの手法を使用する場合には、さまざまな解像度に応じてどのようにアプリケーション レイアウトが調整され、視覚要素の近接性が確保されるかご確認ください。
オートメーションがさまざまな解像度をサポートする場合、[分岐] アクティビティ内部に並列してレコーディングを配置することでロボットがいずれか一致するものを使用できます。
アプリケーションのステートがワークフローの想定とは異なる場合、予期しない動作が発生する恐れがあります。まず、アプリケーションがロボットの操作に応答するまでの時間を確認しましょう。
[待機 (ミリ秒)] プロパティにより、アプリケーションが応答するまでしばらく待機することができます。ただし、プロセス内の特定の手順を進める前に、アプリケーションのステートを検証することが必要になる場合があります。対策として、他のインタラクションの前に、アプリケーションのステートが望ましいものになるまで待機するアクティビティを追加するなどがあります。こうした状況で有効なアクティビティは、次のとおりです。
オートメーションが人間とデスクトップを共有することを想定している場合、すべての UI 操作をバックグラウンドに実装する必要があります。これは、オートメーションが UI 要素オブジェクトと直接やりとりをする必要があることを意味します。こうすることで、プロセス中にアプリケーション ウィンドウを非表示にするか、または最小化することが可能になります。
- [クリック] および [文字を入力] アクティビティを介したナビゲーションとデータ入力については、[入力をシミュレート]、[クリックをシミュレート]、[ウィンドウ メッセージを送信] を使用します。
- バックグラウンドでのデータ入力については、[テキストを設定]、[チェック]、[項目を選択] アクティビティを使用します。
- [テキストを取得]、[フル テキストを取得]、WebScraping アクティビティは、バックグラウンドで実行して出力を取り出します。
- アプリケーションのステートを検証するには、[要素の存在を確認] アクティビティを使用します。