- リリース ノート
- 基本情報
- セットアップと構成
- オートメーション プロジェクト
- 依存関係
- ワークフローの種類
- ファイルの比較
- オートメーションのベスト プラクティス
- ソース管理との連携
- デバッグ
- 診断ツール
- ワークフロー アナライザー
- 変数
- 引数
- インポートされた名前空間
- コード化されたオートメーション
- トリガーベースの有人オートメーション
- レコーディング
- UI 要素
- 制御フロー
- セレクター
- オブジェクト リポジトリ
- オブジェクト リポジトリについて
- オブジェクト リポジトリを作成する
- オブジェクトと UI ライブラリを再利用する
- データ スクレイピング
- 画像とテキストの自動化
- Citrix テクノロジの自動化
- RDP の自動化
- Salesforce の操作の自動化
- SAP のオートメーション
- VMware Horizon の自動化
- ログ
- ScreenScrapeJavaSupport ツール
- Webdriver プロトコル
- Test Suite - Studio
- 拡張機能
- トラブルシューティング
オブジェクト リポジトリを作成する
オブジェクト リポジトリは、以下から収集した要素をアプリケーション、バージョン、画面ごとにグループ化したものです。
- ローカル プロジェクト、すなわちローカル リポジトリ。
- ライブラリ、すなわち現在のプロジェクトに対する UI ライブラリの依存関係。
ローカル リポジトリは、以下のいずれかの方法で作成できます。
- 「要素をキャプチャ」レコーダーを使用して UI の説明をキャプチャします。
- [オブジェクト リポジトリ] パネルで直接、アプリケーション、画面、要素を手動で作成します。
UI ライブラリは以下の方法で作成できます。
- 任意のプロジェクトからライブラリ プロジェクトにローカル リポジトリを抽出し、NuGet パッケージとしてパブリッシュします。
-
新しいライブラリから開始し、そこでリポジトリを構築し、NuGet パッケージとしてパブリッシュします。
その後、UI ライブラリの NuGet パッケージを使用し、依存関係としてプロセスに追加することができます。
重要:「要素をキャプチャ」レコーダーでは、プロジェクト内で再利用するためにオブジェクトが記録されるだけであり、[デザイナー] パネル内にワークフローが生成されることはありません。
ライブラリまたはプロセスで、オブジェクト リポジトリの [要素をキャプチャ] ボタンをクリックして、「要素をキャプチャ」レコーダーを開きます。
[記録を開始] をクリックして、要素のキャプチャを開始します。「要素をキャプチャ」レコーダーは、UIAutomation.Activities パッケージ (v20.10 以降) で利用できる統合ターゲット技術を利用して、セレクター、画像、アンカーのそれぞれに対してある一定の精度でターゲットとアンカーをキャプチャします。
UI 要素はセレクター、あいまいセレクター、画像とともにキャプチャされ、それぞれにある程度の精度が確保されます。これらのターゲット要素を 1 つだけ維持するか、すべて維持するかを選択できます。同じことが、アプリケーション内の各 UI 要素に関連するアンカー要素にも当てはまります。
レコーダーでは、以下を実行できます。
- [アプリケーションを追加] または [画面を追加] をクリックして、新しいアプリケーションまたは画面を追加します。
- [一時停止] をクリックして、いつでも記録を一時停止できます。記録を再開するには、[記録] を再びクリックします。
-
記録された要素を管理します。
- 左側のパネルで選択し、右側の [プロパティ] パネルで編集して、画面または要素のプロパティを更新します。
- 左側のパネルでドラッグ アンド ドロップして、要素を並べ替えたり、グループ化します。
- [要素をキャプチャ] ウィンドウで ボタンを使用してキャプチャ済みの要素名の上にカーソルを合わせて強調表示し、要素を簡単に見つけることができます。
-
レコーディングが一時停止しているときに、以下を行うことができます。
- 右クリックして [削除] を選択して、要素を削除します。
- 既存の要素を右クリックし、[要素を作成] を選択して、画面または要素の子として新しい要素を作成します。
- 必要に応じて、[設定] をクリックして、各要素を設定するか、変更を自動適用するかを選択します (どちらの設定も、既定で有効化されています)。
- [オブジェクトをライブラリに保存] をクリックして変更内容を保存し、レコーダーを閉じて、プロジェクトに戻ります。
[すべての要素をキャプチャ] 機能では、Computer Vision テクノロジを使用し、アプリケーションの利用可能なすべての要素をキャプチャして、オブジェクト リポジトリに追加することができます。この方法は、オートメーションでオブジェクト リポジトリの使用が欠かせない場合に便利です。すべての UI 要素を手動で追加しなくても済むようになり、プロセスの作成時に時間を節約できるからです。
- 要素をキャプチャ ウィザードで [すべての要素をキャプチャ] ボタンをクリックします。オブジェクト リポジトリに追加する要素を含むウィンドウを指定するよう求められます。要素をキャプチャする領域の四角形をクリックしてドラッグすることで、対象のアプリケーションの領域のみを選択することもできます。
-
アプリケーションを指定すると、すべての要素が検出され緑で強調表示されます。オブジェクト リポジトリに追加しない要素を手動で選択解除することもできます。[スキャン ウィザード] ウィンドウでは、該当のボタンを使用して、要素を [すべて選択] するか [すべて選択解除] するかを選択できます。選択が完了したら、[キャプチャ] をクリックしてスキャン ウィザードを閉じ、[要素をキャプチャ] ウィンドウに戻ります。
識別されない要素がある場合は、分析のために UiPath に画像を送信して検出機能の向上にご協力ください。[問題を報告] をクリックし、識別されない要素がある領域を選択して [送信] を選択します。
注:この機能を利用するには、使用する Computer Vision サーバーを設定しておく必要があります。以下のいずれかのサーバーを使用できます。
使用するサーバーの種類を選択したら、サーバーと API キーのプロジェクト設定を編集して、その種類のサーバーを現在のプロジェクトで使用するよう指定する必要があります。
アプリケーション内のセレクターは、ボタン、チェックボックス、テキスト フィールド、トグル、リスト ボックスなど、ロボットと対話可能なあらゆる種類の要素を表すことができます。キャプチャ済みの要素は「要素をキャプチャ」レコーダーで定義できます。
[種類] ドロップダウン リストから、各要素に適した種類を検索して選択することができます。オブジェクト リポジトリ内では、要素に種類別のアイコンが付けられるため、オブジェクトを区別しやすくなります。
要素をキャプチャした後で、[オブジェクトをライブラリに保存] ボタンをクリックすると、オブジェクトがオブジェクト リポジトリに追加されます。 要素を追加するには、リポジトリ内の画面または要素を右クリックし、[要素を作成] を選択します。画面を追加するには、アプリケーションを右クリックし、[画面を作成] を選択します。
必要な要素をすべてキャプチャする前にレコーダーを終了した場合、またはオブジェクト リポジトリに既に追加されているアプリケーションまたは画面に対して、[要素をキャプチャ] を使用して要素を追加または変更する場合、そのアプリケーションまたは画面のコンテキストでいつでもレコーダーを起動できます。
-
[プロジェクト UI 記述子] の下の任意のアプリケーションまたは画面を右クリックして、[要素をキャプチャ] を選択します。そのアプリケーションまたは画面のコンテキストで、[要素をキャプチャ] ウィンドウが開きます。
- アプリケーションを選択した場合、そのアプリケーションのすべての画面と要素が [要素をキャプチャ] にあらかじめ入力されます。
- 画面を選択した場合、その画面のすべての要素が [要素をキャプチャ] にあらかじめ入力されます。
- 必要に応じて、画面と要素を更新します。新しい画面を追加したり、記録を開始して新しい要素を追加したり、既存の画面や要素を編集または削除できます。既存の画面や要素に変更を加えると、変更は保存時にオブジェクト リポジトリの記述子に適用されます。
- [オブジェクトをライブラリに保存] をクリックして変更内容を保存し、レコーダーを閉じて、プロジェクトに戻ります。
[オブジェクト リポジトリ] パネル内でアプリケーション、各画面、要素を手動で定義することにより、独自のリポジトリを作成できます。
[オブジェクト リポジトリ] パネルの [記述子] タブのプラス記号をクリックするか、同じタブのプロジェクト記述子を右クリックして [アプリケーションを作成] を選択します。[アプリケーションを作成] ウィンドウが表示されます。
一意のアプリケーション名、バージョン、説明を入力します。[アプリケーションを作成] をクリックします。アプリケーションが、[記述子] タブの [プロジェクト UI 記述子] の下に表示されます。
[記述子] タブでアプリケーションを選択してプラス記号をクリックするか、アプリケーションを右クリックして [画面を作成] を選択します。[画面を追加] ウィンドウが表示されます。
画面の一意の名前、および説明を追加します。自動化する画面を指定し、キャプチャした要素を統合ターゲットで編集します。
- 必要に応じて、アプリケーション パスを変更します。
-
アプリケーション引数を追加します。
完了したら、[画面を作成] をクリックします。
[記述子] タブでアプリ画面を選択してプラス記号をクリックするか、画面を右クリックして [要素を作成] を選択します。[要素を追加] ウィンドウが表示されます。
[記述子の種類] セクションで、[要素を指定] をクリックします。統合ターゲットを使用して画面から要素を指定し、キャプチャします。
直観的に理解できる名前を [要素名] フィールドに追加し、[種類] ドロップダウン リストから要素の種類を選択します完了したら [保存] をクリックします。
- オブジェクト リポジトリで要素を編集するには、対象の要素を右クリックして [要素を編集] を選択するか、ツリー内の要素をダブルクリックします。
- 要素の記述子を編集するには、[要素を編集] ウィンドウの [記述子を編集] オプションを使用するか、ツリー内の要素を右クリックして [記述子を編集] を選択します。
オブジェクト リポジトリが (「オブジェクト リポジトリについて」ページの説明に従って) Studio のインスタンスに適用される場合は、アプリ/Web レコーダーの使用時に、生成されたアクティビティによりリポジトリの記述子が自動的に参照されることはありません。
アクティビティのレベルで、オブジェクト リポジトリに記述子を追加するか既存の記述子を使用するよう、情報提供用のツールチップで通知されます。
そのためには、アクティビティ内でアイコンをクリックして、記述子を追加または再利用するための手順を実行します。あるいは、[オプション] > [オブジェクト リポジトリに追加] の順に選択してオブジェクト リポジトリに要素を追加します。
オブジェクト リポジトリを作成した後は、[デザイナー] パネルから直接 UI 要素を追加できます。
[デザイナー] パネルでは、[クリック] や [文字を入力] など、セレクターをサポートするアクティビティを追加します。追加したアクティビティが [アプリケーション/ブラウザーを使用] アクティビティ内にあることを確認してください。
アクティビティの本体内で、オブジェクト リポジトリ アイコンをクリックして [選択オプション] ウィンドウを開きます。要素をキャプチャし、[確認] を選択すると、[要素をオブジェクト リポジトリに追加] ウィンドウが開きます。要素に名前を追加し、[保存] をクリックします。[オブジェクト リポジトリ] パネルに要素が追加されます。
オブジェクト リポジトリから、画面または要素をワークフロー内のアクティビティの上部にドラッグ アンド ドロップします。オブジェクトの画像、引数、その他詳細が自動的にアクティビティに追加されます。あるアクティビティがオブジェクト リポジトリの画面または要素を使用しているときは、アクティビティ内でオブジェクト リポジトリのアイコンをクリックすると、オブジェクト リポジトリ ツリーで使用されている記述子が強調表示されます。
MyAppScreen
オブジェクトをドラッグした例です。アプリケーション パスがアクティビティに自動的に追加されています。
あるいは、ワークフロー内のプラス記号の上にオブジェクトをドラッグ アンド ドロップします。画面をドラッグ アンド ドロップすると、[アプリケーション/ブラウザーを使用] アクティビティが自動的に追加されます。要素をドラッグ アンド ドロップすると、使用できるアクティビティのリストが表示されます。目的のアクティビティを選択すると、オブジェクトが自動的に追加されます。プロセス内で、アクティビティはアクティビティ名 + オブジェクト名のラベルを受け取ります。オブジェクトが追加された後、アクティビティは、そのアクティビティの [プロパティ] パネルに表示される記述子のプロパティをオブジェクト リポジトリから受け取ります。
- アクティビティから記述子を編集または指定するには、[オプション] を選択してから [画面上でターゲットを指定] または [ターゲットを編集] を選択します。オブジェクト リポジトリの記述子に対してアクションが実行されることを示すダイアログが表示されます。[記述子を指定] および [記述子を編集] をそれぞれ選択して、選択内容を確定します。
-
現在のアクティビティの記述子のみを指定または編集するには、[オプション] を選択してから [オブジェクト リポジトリへのリンクを解除] を選択して、まずアクティビティとオブジェクト リポジトリの間のリンクを削除する必要があります。オブジェクト リポジトリが適用されている場合、リンクを解除することによってターゲットがアクティビティから削除されることに注意してください。
オブジェクトがワークフローに追加されると、[オブジェクト リポジトリ] パネルの [UI アクティビティ] タブに、アクティビティとそれに含まれるオブジェクトが階層順に表示されます。表示されない場合は、プロジェクトを保存し、再度確認してください。
ワークフローは次のようにマークされます。
- ワークフロー ファイル内の少なくとも 1 つのアクティビティが [オブジェクト] パネルの UI 記述子を参照している場合は、グレーのドット
- ワークフローのすべてのアクティビティが [オブジェクト] パネルの UI 記述子を参照している場合は青のドット
UI アクティビティは、次のようにマークされます。
- ワークフローのアクティビティが [オブジェクト] パネルの UI 記述子を参照していない場合は白のドット
- アクティビティが [オブジェクト] パネルの UI 記述子を参照している場合は青のドット
- UI 要素を文字列として呼び出す。
- オブジェクト リポジトリの
IElementDescriptors
を使用する。
1. UI 要素を文字列として呼び出す
- プロジェクトのオブジェクト リポジトリで
MyApplication
という名前のアプリケーションを作成します。MainScreen
というアプリケーションの画面を作成します。HomePageIcon
という名前の要素を作成します。
- 画面の変数を作成します。
- OpenAPI を使用し、以下のコードを使用して画面を開きます。
var screen = uiAutomation.Open("MainScreen");
var screen = uiAutomation.Open("MainScreen");名前空間ObjectRepository
とDescriptors
を検索するには、キーボードのCTRL + space
キーを押します。 - 以下のコードを使用し、UI 要素に対して Click API を使用します。
screen.Click("HomePageIcon");
screen.Click("HomePageIcon");
2. UI 要素を IElementDescriptor として呼び出す
IElementDescriptors
として呼び出す場合は、ObjectRepository.Descriptors.<ApplicationName>.<ScreenName>.<UiElementName>
の形式を使用します。ここでの ObjectRepository
は Descriptors
クラスを統合する名前空間です。さらに、Descriptors
クラスには、オブジェクト リポジトリでキャプチャしたすべての UI 要素が含まれます。
Object
を使用しないことをお勧めします。
- プロジェクトのオブジェクト リポジトリで
MyApplication
という名前のアプリケーションを作成します。MainScreen
というアプリケーションの画面を作成します。HomePageIcon
という名前の要素を作成します。
- 読みやすくするために、アプリケーションを変数として定義し、ワークフローの先頭に
using
ステートメントを適用できます。例:using app = <ProjectName>.ObjectRepository.Descriptors.<AppName>
.この方法では、app.<ScreenName>.<UiElementName>
形式で記述子を簡単に呼び出すことができます。 - 画面の変数を作成します。
- OpenAPI を使用し、以下のコードを使用して画面を開きます。
var screen = uiAutomation.Open(ObjectRepository.Descriptors.MyApplication.MainScreen);
var screen = uiAutomation.Open(ObjectRepository.Descriptors.MyApplication.MainScreen);名前空間ObjectRepository
とDescriptors
を検索するには、キーボードのCTRL + space
キーを押します。 - 以下のコードを使用し、UI 要素に対して Click API を使用します。
screen.Click(ObjectRepository.Descriptors.MyApplication.MainScreen.HomePageIcon);
screen.Click(ObjectRepository.Descriptors.MyApplication.MainScreen.HomePageIcon);
- インポートしたライブラリ プロジェクトから取得したオブジェクト リポジトリの要素を使用する場合は、次の手順を実行します。
- ライブラリのエクスポート元のプロジェクトで、新しいコード化されたテスト ケースまたはコード化されたワークフロー ファイルを作成します。
UiPath.CodedWorkflows
パッケージを最新バージョンに更新します。- インポートしたオブジェクト リポジトリの要素を使用するファイルの名前空間セクションで、次の形式を使用して、それらの要素のエクスポート元のプロジェクトを参照します。
<ProjectName> = <LibraryName>.ObjectRepository.Descriptors
- Click や Open などの API を使用する場合は、次の形式で UI 要素を呼び出します。
screen.Click(<LibraryName>.ObjectRepository.Descriptors.MyApplication.MainScreen.HomePageIcon);
screen.Click(<LibraryName>.ObjectRepository.Descriptors.MyApplication.MainScreen.HomePageIcon);
記述子はオブジェクト リポジトリから、「オンライン編集」あるいは「オフライン編集」のいずれかの方法で編集できます。
- オンライン編集 - 現在のマシン上でアプリケーションまたはブラウザーにアクセスできる場合。アプリケーション/ブラウザーが画面上に表示され、要素を再度選択したり、変更したりできます。
-
オフライン編集 - アプリケーションがインストールされていないか、マシンがオフラインになっているため、現在のマシンではアプリケーション/ブラウザーにアクセスできない場合。要素のセレクターが表示され、要素を変更することができます。
注: 記述子のセレクターとあいまいセレクターはどちらも、UI Explorer で ボタンを使用して直接編集できます。
[記述子] タブで、要素を右クリックし、[記述子を編集] を選択します。選択画面が開き、別の要素をキャプチャしたり、セレクターやアンカーを編集したりできます。
[要素を編集] ウィンドウの [記述子を編集] ボタンをクリックしても、同じことができます。
オンライン編集と同じ手順が、ここでも適用されます。[記述子] タブで、要素を右クリックし、[記述子を編集] を選択します。
オフライン編集では、要素記述子の設定を直接変更することができます。ただし、新しい要素を指定することはできません。新しい要素を指定するには、アプリケーション/ブラウザーが正しいステートにあることを確認してください。
既にオブジェクト リポジトリで参照されている画面または UI 要素を指定すると、プロジェクト UI 記述子または UI ライブラリのいずれかで一致するものが自動的に検出され、以下のウィンドウが表示されます。
次のオプションを使用できます。
- 再利用 - 一致する記述子をオブジェクト リポジトリから現在のアクティビティに追加します。
- 新規作成 - 新しい画面/要素の作成、またはオブジェクト リポジトリ内の既存の画面/要素の更新を行うオプション ウィンドウを開きます。
- キャンセル - リポジトリ内のオブジェクトに一切変更を加えずに、アクティビティ内で現在示されているセレクターを保持します。
画面を指定すると、対応する UI 記述子が検出される一方、ターゲット要素を指定すると、一致する UI 記述子が検索されます。レコーダーを使用している場合は、画面と要素の一致するものが、ローカル UI ライブラリのプロジェクト UI 記述子または UI ライブラリのインポートされた依存関係の中から検索されます。
再利用性を向上させるために、記述子の変数を使用できます。
ターゲットを編集し、変数を追加して、オブジェクト リポジトリに追加するか、既存の画面または要素のセレクターにオブジェクト リポジトリから変数を追加することができます。変数を含む記述子をプロセスに追加するときは、必ずプロセス内に変数を作成してください。そうしなければ、式を読み取ることができません。
記述子セレクターに変数を追加するには、オブジェクト リポジトリ内の要素を右クリックして [記述子を編集] を選択し、[選択オプション] ウィンドウから変数を追加します。
<name='{{VarNumber}}'/>
とすると、変数 VarNumber
の値がセレクターの name
属性に追加されます。
以下の例では、[アプリケーション/ブラウザーを使用] アクティビティの [ブラウザーの URL] フィールド内で変数を使用し、ターゲットを画面オブジェクトとしてオブジェクト リポジトリに追加しました。このようにして、URL が変更になるケースが記述子で考慮されるようにします。