- リリース ノート
- 基本情報
- セットアップと構成
- オートメーション プロジェクト
- 依存関係
- ワークフローの種類
- 制御フロー
- ファイルの比較
- オートメーションのベスト プラクティス
- ソース管理との連携
- デバッグ
- ログ
- 診断ツール
- ワークフロー アナライザー
- ワークフロー アナライザーについて
- ST-DBP-002 - 多数の引数
- ST-DBP-003 - 空の catch ブロック
- ST-DBP-007 - 複数のフローチャートレイヤー
- ST-DPB-010 - [ワークフロー] または [テスト ケース] の複数のインスタンス
- ST-DBP-020 - 未定義の出力プロパティ
- ST-DBP-021 - ハードコードされたタイムアウト
- ST-DBP-023 - 空のワークフロー
- ST-DBP-024 - 永続性アクティビティの確認
- ST-DBP-025 - 変数のシリアル化の前提条件
- ST-DBP-026 - [待機] アクティビティの使用
- ST-DBP-027 - Persistence のベスト プラクティス
- ST-DBP-028 - 引数のシリアル化の前提条件
- ST-USG-005 - ハードコードされたアクティビティ引数
- ST-USG-009 - 未使用の変数
- ST-USG-010 - 未使用の依存関係
- ST-USG-014 - パッケージの制限
- ST-USG-017 - パラメーター修飾子が無効です
- ST-USG-020 - 最小ログ メッセージ
- ST-USG-024 - 未使用で保存されたままの値
- ST-USG-025 - 保存した値の誤用
- ST-USG-026 - アクティビティの制限
- ST-USG-027 - 必要なパッケージ
- ST-USG-028 - ファイル テンプレートの呼び出しの制限
- ST-USG-027 - 必須のタグ
- ST-USG-034 - Automation Hub URL
- 変数
- 引数
- インポートされた名前空間
- コード化されたオートメーション
- トリガーベースの有人オートメーション
- レコーディング
- UI 要素
- セレクター
- オブジェクト リポジトリ
- オブジェクト リポジトリについて
- オブジェクト リポジトリを作成する
- オブジェクトと UI ライブラリを再利用する
- オブジェクト リポジトリ同期ツール
- データ スクレイピング
- 画像とテキストの自動化
- Citrix テクノロジの自動化
- RDP の自動化
- VMware Horizon の自動化
- Salesforce の操作の自動化
- SAP のオートメーション
- macOS の UI Automation
- ScreenScrapeJavaSupport ツール
- Webdriver プロトコル
- 拡張機能
- Test Suite - Studio
- トラブルシューティング
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);
モバイル オートメーション API を使用する場合、オブジェクト リポジトリを介して UI 要素にアクセスするには、主に次の 2 つの方法があります。
ObjectRepository
名前空間とDescriptors
クラスのIScreenDescriptors
とIElementDescriptors
を使用します。- オブジェクト リポジトリで画面を基準にした相対パスを使用します。複数のアプリケーションまたは複数の画面がある場合は、メソッド呼び出しで指定する必要があります。
1. Descriptors クラスの IElementDescriptors を使用する
IElementDescriptors
として呼び出す場合は、ObjectRepository.Descriptors.<ApplicationName>.<ScreenName>.<UiElementName>
の形式を使用します。ここでの ObjectRepository
は Descriptors
クラスを統合する名前空間です。さらに、Descriptors
クラスには、オブジェクト リポジトリでキャプチャしたすべての UI 要素が含まれます。
Object
を使用しないことをお勧めします。
- プロジェクトのオブジェクト リポジトリで
MyApplication
という名前のアプリケーションを作成します。HomeScreen
というアプリケーションの画面を作成します。ParentElement
という名前の要素を作成します。ParentElement
の下に入れ子にして、ChildElement
という名前の要素を作成します。
- 読みやすくするために、アプリケーションを変数として定義し、ワークフローの先頭に
using
ステートメントを適用できます。例:using app = <ProjectName>.ObjectRepository.Descriptors.<AppName>
.この方法では、app.<ScreenName>.<UiElementName>
形式で記述子を簡単に呼び出すことができます。 - モバイル デバイスと、オブジェクト リポジトリに記録されているアプリケーション間のコネクションを作成します。
- そのコネクションに対して Tap API を呼び出し、以下のコードを使用して
ChildElement
要素をクリックします。connection.Tap(Descriptors.MyApplication.HomeScreen.ParentElement.ChildElement);
connection.Tap(Descriptors.MyApplication.HomeScreen.ParentElement.ChildElement);名前空間ObjectRepository
とDescriptors
を検索するには、キーボードのCTRL + space
キーを押します。 - 以下のコードを使用し、
ParentElement
に対して GetAttribute API を使用します。var isChecked = connection.GetAttribute(Descriptors.MyApplication.HomeScreen.ParentElement, Attributes.Android.CHECKED);
var isChecked = connection.GetAttribute(Descriptors.MyApplication.HomeScreen.ParentElement, Attributes.Android.CHECKED); - インポートしたライブラリ プロジェクトから取得したオブジェクト リポジトリの要素を使用する場合は、次の手順を実行します。
- ライブラリのエクスポート元のプロジェクトで、新しいコード化されたテスト ケースまたはコード化されたワークフロー ファイルを作成します。
UiPath.CodedWorkflows
パッケージを最新バージョンに更新します。- インポートしたオブジェクト リポジトリの要素を使用するファイルの名前空間セクションで、次の形式を使用して、それらの要素のエクスポート元のプロジェクトを参照します。
<ProjectName> = <LibraryName>.ObjectRepository.Descriptors
- API を使用する場合は、次の形式で UI 要素を呼び出します。
connection.Tap(<LibraryName>.ObjectRepository.Descriptors.MyApplication.HomeScreen.ParentElement.ChildElement);
connection.Tap(<LibraryName>.ObjectRepository.Descriptors.MyApplication.HomeScreen.ParentElement.ChildElement);
2. オブジェクト リポジトリで画面を基準とした相対パスを使用する
Strings
を使ってオブジェクト リポジトリの要素にアクセスできます。パスは、モバイル画面上の要素階層の文字列表現です。また、すべての要素に対して対象のアプリケーションと画面を指定できるため、リポジトリ内で名前が重複している記述子にもアクセスできます。
MobileTarget.FromObjectRepository
コンストラクターを使用して作成されます。このコンストラクターの戻り値は ObjectRepositoryTarget
です。
オブジェクト リポジトリで UI 要素のパスを指定するには、以下の 2 つの方法があります。
- "parentOfparent///parent///child" などの形式で親子関係として配置された
Strings
を使用します。たとえば、次のコードを見てみましょう。このコードでは、現在のアプリの現在の画面にある、ParentElement
の子であるChildElement
というモバイル ターゲット要素をタップします。connection.Tap(MobileTarget.FromObjectRepository("ParentElement///ChilElement"));
connection.Tap(MobileTarget.FromObjectRepository("ParentElement///ChilElement"));同じ例を見てみましょう。ただし今回は、同じCheckedOnlyCheckBox
要素をタップしますが、現在は別のアプリ (anotherApp
) の別の画面 (anotherScreen
) 上にあります。connection.Tap(MobileTarget.FromObjectRepository("ParentElement///ChildElement", "anotherApp", "anotherScreen");
connection.Tap(MobileTarget.FromObjectRepository("ParentElement///ChildElement", "anotherApp", "anotherScreen"); - ["parentOfParent", "parent", "child"] などの形式で親子関係として配置された
Strings
の配列を使用します。たとえば、以下のコードを見てみましょう。このコードでは、同じ UI 要素をタップしますが、配列内に配置された個別の文字列にパスを入力します。connection.Tap(MobileTarget.FromObjectRepository(new string[]{"ParentElement", "ChildElement"}));
connection.Tap(MobileTarget.FromObjectRepository(new string[]{"ParentElement", "ChildElement"}));メソッド呼び出しに別の画面またはアプリを指定する場合も、同じ例を使用できます。connection.Tap(MobileTarget.FromObjectRepository(new string[]{"ParentElement", "ChildElement"}, "anotherApp", "anotherScreen"));
connection.Tap(MobileTarget.FromObjectRepository(new string[]{"ParentElement", "ChildElement"}, "anotherApp", "anotherScreen"));
記述子はオブジェクト リポジトリから、「オンライン編集」あるいは「オフライン編集」のいずれかの方法で編集できます。
- オンライン編集 - 現在のマシン上でアプリケーションまたはブラウザーにアクセスできる場合。アプリケーション/ブラウザーが画面上に表示され、要素を再度選択したり、変更したりできます。
-
オフライン編集 - アプリケーションがインストールされていないか、マシンがオフラインになっているため、現在のマシンではアプリケーション/ブラウザーにアクセスできない場合。要素のセレクターが表示され、要素を変更することができます。
注: 記述子のセレクターとあいまいセレクターはどちらも、UI Explorer で ボタンを使用して直接編集できます。
[記述子] タブで、要素を右クリックし、[記述子を編集] を選択します。選択画面が開き、別の要素をキャプチャしたり、セレクターやアンカーを編集したりできます。
[要素を編集] ウィンドウの [記述子を編集] ボタンをクリックしても、同じことができます。
オンライン編集と同じ手順が、ここでも適用されます。[記述子] タブで、要素を右クリックし、[記述子を編集] を選択します。
オフライン編集では、要素記述子の設定を直接変更することができます。ただし、新しい要素を指定することはできません。新しい要素を指定するには、アプリケーション/ブラウザーが正しいステートにあることを確認してください。
既にオブジェクト リポジトリで参照されている画面または UI 要素を指定すると、プロジェクト UI 記述子または UI ライブラリのいずれかで一致するものが自動的に検出され、以下のウィンドウが表示されます。
次のオプションを使用できます。
- 再利用 - 一致する記述子をオブジェクト リポジトリから現在のアクティビティに追加します。
- 新規作成 - 新しい画面/要素の作成、またはオブジェクト リポジトリ内の既存の画面/要素の更新を行うオプション ウィンドウを開きます。
- キャンセル - リポジトリ内のオブジェクトに一切変更を加えずに、アクティビティ内で現在示されているセレクターを保持します。
画面を指定すると、対応する UI 記述子が検出される一方、ターゲット要素を指定すると、一致する UI 記述子が検索されます。レコーダーを使用している場合は、画面と要素の一致するものが、ローカル UI ライブラリのプロジェクト UI 記述子または UI ライブラリのインポートされた依存関係の中から検索されます。
再利用性を向上させるために、記述子の変数を使用できます。
ターゲットを編集し、変数を追加して、オブジェクト リポジトリに追加するか、既存の画面または要素のセレクターにオブジェクト リポジトリから変数を追加することができます。変数を含む記述子をプロセスに追加するときは、必ずプロセス内に変数を作成してください。そうしなければ、式を読み取ることができません。
記述子セレクターに変数を追加するには、オブジェクト リポジトリ内の要素を右クリックして [記述子を編集] を選択し、[選択オプション] ウィンドウから変数を追加します。
<name='{{VarNumber}}'/>
とすると、変数 VarNumber
の値がセレクターの name
属性に追加されます。
以下の例では、[アプリケーション/ブラウザーを使用] アクティビティの [ブラウザーの URL] フィールド内で変数を使用し、ターゲットを画面オブジェクトとしてオブジェクト リポジトリに追加しました。このようにして、URL が変更になるケースが記述子で考慮されるようにします。
- 要素をキャプチャしてリポジトリを作成する
- すべての要素をキャプチャ
- 記述子のプロパティ
- 要素の種類
- 既存のアプリケーションと画面に [要素をキャプチャ] を使用する
- オブジェクト リポジトリ パネルからリポジトリを作成する
- UI アプリケーションを作成する
- 画面を作成する
- UI 要素を作成する
- レコーダーでオブジェクト リポジトリを使用する
- 要素をアクティビティからリポジトリに追加する
- 現在のプロジェクトでオブジェクトを使用する
- UI Automation を使用して、コード化されたオートメーションでオブジェクトを使用する
- モバイル オートメーションを使用して、コード化されたオートメーションでオブジェクトを使用する
- 記述子を編集する
- 要素記述子
- オンライン編集
- オフライン編集
- 画面記述子
- UI 記述子を解決する
- 記述子の変数
- 要素を強調表示する