studio
latest
false
- 基本情報
- セットアップと構成
- オートメーション プロジェクト
- 依存関係
- ワークフローの種類
- 制御フロー
- ファイルの比較
- オートメーションのベスト プラクティス
- ソース管理との連携
- デバッグ
- ログ
- 診断ツール
- ワークフロー アナライザー
- ワークフロー アナライザーについて
- 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 要素
- セレクター
- オブジェクト リポジトリ
- データ スクレイピング
- 画像とテキストの自動化
- Citrix テクノロジの自動化
- RDP の自動化
- VMware Horizon の自動化
- Salesforce の操作の自動化
- SAP のオートメーション
- macOS の UI Automation
- ScreenScrapeJavaSupport ツール
- Webdriver プロトコル
- 拡張機能
- Studio でのテスト
- トラブルシューティング
重要 :
このコンテンツの一部は機械翻訳によって処理されており、完全な翻訳を保証するものではありません。
新しいコンテンツの翻訳は、およそ 1 ~ 2 週間で公開されます。

Studio ガイド
最終更新日時 2025年3月24日
インポートしたライブラリ プロジェクトをコード化されたオートメーションで使用する
このチュートリアルでは、インポートしたライブラリ プロジェクトから取得したオブジェクトをコード化されたオートメーション内で使用する方法について説明します。この例では、インポートしたライブラリ プロジェクトから取得したオブジェクト リポジトリの要素とワークフローを使用する方法を示します。指定のシナリオでは、ACME Web サイトを自動化して、学生のスコア カードに必要事項を入力し、それをデータベースに追加します。
- UI Automation アクティビティ パッケージのバージョン 23.10.13 以降をインストールします。
注: 使用しているメジャー バージョンに対応する最新のマイナー バージョンを使用することをお勧めします。たとえば、メジャー バージョン 23.10 のアクティビティ パッケージを使用している場合は、利用可能な最新のマイナー バージョン (
23.10.x
) にアップグレードすることをお勧めします。 - ACME ライブラリのサンプルをパブリッシュし、作業中のプロジェクトにインストールします。
ACME アプリの自動化 (厳密には学生のスコア カードへの入力) に不可欠な UI 要素を格納するライブラリ プロジェクトを作成します。さらに、ライブラリ プロジェクト内にローコード (
.xaml
) またはコード化されたワークフロー (.cs
) を作成します。これは、後で別のコード化されたオートメーション内で使用するものです。
AcmeLibrary
という名前のライブラリ プロジェクトを作成します。- [オブジェクト リポジトリ] と [記述子] セクション内で使用する、すべての UI 要素をキャプチャします。
- [ファイル] グループから、新しいコード化されたワークフローを作成します。
この手順は、別のプロジェクトにライブラリをインポートするときに、コード化されたオートメーション内のオブジェクト リポジトリにアクセスできるようにするために重要です。
- Main ローコード ワークフローの名前を
Send message box
に変更し、[メッセージ ボックス] アクティビティを、「You've added a new score card for a student in Acme. (ACME の学生用に新しいスコア カードを追加しました。)」というテキストと共に追加します。注: チュートリアルで説明されている手順に従って、[メッセージ ボックス] アクティビティをコード化されたワークフローとして再作成することもできます。 - ライブラリ プロジェクトを保存し、フィードにパブリッシュします。
このパブリッシュされたライブラリは、コード化されたオートメーション内の別のプロジェクトにインストールして使用します。
ライブラリ プロジェクトの作成後、それを別のプロジェクトにインストールして、その再利用可能なアセット (オブジェクト リポジトリの要素やワークフローなど) を、それらがローコード (
.xaml
) かコード化 (.cs
) かにかかわらず活用します。
ヒント: UI Automation API を使用する場合、
IScreenDescriptor
または IElementDescriptor
を含むオーバーロードはオブジェクト リポジトリの要素を操作するためのものであるのに対し、TargetAnchorableModel
を含むオーバーロードは UI Explorer で取得されたネイティブ セレクターで使用するためのものであることに注意してください。UI Automation API でセレクターを活用する方法について詳しくは、UI Automation API をご覧ください。
- [ファイル] グループから、新しいコード化されたワークフローを作成します。
- [パッケージを管理] に移動し、以前に作成したライブラリ プロジェクトをインストールします。
- [ファイル] グループから、新しいワークフローを作成します。
- ワークフローに
notifyStudentScoreCardAdded
という名前を付けます。 - [アクティビティ] パネル、[インストール済み] セクションの順に移動します。
- インポートしたライブラリ プロジェクトの名前 (この例では
AcmeLibrary
) を検索します。 Send message box
アクティビティをnotifyStudentScoreCardAdded
内にドラッグ アンド ドロップします。これで、notifyStudentScoreCardAdded
の動作は、インポートしたライブラリ プロジェクトから取得したSend message box
ワークフローと同じになります。
- ワークフローに
- 読みやすくするために、インポートしたオブジェクト リポジトリ アプリケーションを変数として定義し、ワークフローの先頭に
using
ステートメントを適用できます。以下に例を示します。using app = <ProjectName>.ObjectRepository.Descriptors
この方法では、app.<AppName>.<ScreenName>.<UiElementName>
形式で記述子を簡単に呼び出すことができます。この例では、ACME オブジェクト リポジトリを次のように定義します。[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
namespace UsingImportedLibraryProjects { using AcmeApp = AcmeLibrary.ObjectRepository.Descriptors; - これで、ACME 内で指定のシナリオを自動化できるようになりました。最初に、OpenAPI を使用して ACME のログイン画面を開きます。
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[Workflow] public void Execute() { // 1.Open the Acme app on the Login screen var AcmeLoginScreen = uiAutomation.Open(AcmeApp.Acme.LoginScreen); - TypeInto API を使用して、ACME にログインするために必要な資格情報を入力します。
// 2.Type in the necessary credentials AcmeLoginScreen.TypeInto(AcmeApp.Acme.LoginScreen.Email, "john.doe2023@uipath.com"); AcmeLoginScreen.TypeInto(AcmeApp.Acme.LoginScreen.Password, "12345678");
// 2.Type in the necessary credentials AcmeLoginScreen.TypeInto(AcmeApp.Acme.LoginScreen.Email, "john.doe2023@uipath.com"); AcmeLoginScreen.TypeInto(AcmeApp.Acme.LoginScreen.Password, "12345678"); - Click API とネイティブ セレクターを使用して、[Login] ボタンをクリックします。
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
// 3.Use a native selector to click the Login button AcmeLoginScreen.Click(Target.FromSelector("<webctrl tag='BUTTON' type='submit'/>")); - ログイン プロセスが実行されると、ACME Web アプリケーションの [Dashboard] 画面が表示されます。そのため、Attach API を使用して新しい画面にフォーカスします。
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
// 4. Focus on the Dashboard screen var DashboardScreen = uiAutomation.Attach(AcmeApp.Acme.Dashboard); - Click API を使用して、Web サイトで [Students] エントリを選択します。
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
// 5. Click the Students entry DashboardScreen.Click(AcmeApp.Acme.Dashboard.Students); - Click API を使用して、[Score card] を選択し、[Students - Score Card] フォームを開きます。
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
// 6. Click Score card, to start filling in a student score card DashboardScreen.Click(AcmeApp.Acme.Dashboard.Students.ScoreCard); - Attach API を使用して、[Students - Score Card] 画面にフォーカスします。
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
// 7. Focus on the Score Card screen where you fill in the necessary information var ScoreCardScreen = uiAutomation.Attach(AcmeApp.Acme.StudentsScoreCard); - TypeInto API を使用して、[Students - Score Card] フォームのフィールドの半分と、オブジェクト リポジトリから取得した要素に入力します。
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
ScoreCardScreen.TypeInto(AcmeApp.StudentsScoreCard.StudentEmail, "john.doe@uipath.com"); ScoreCardScreen.TypeInto(AcmeApp.Acme.StudentsScoreCard.FirstName, "John"); ScoreCardScreen.TypeInto(AcmeApp.Acme.StudentsScoreCard.LastName, "Doe"); ScoreCardScreen.TypeInto(AcmeApp.Acme.StudentsScoreCard.ParentEmail, "johnny.doe@uipath.com"); ScoreCardScreen.TypeInto(AcmeApp.Acme.StudentsScoreCard.Tuition, "Private"); - TypeInto API と、UI Explorer で見つけたネイティブ セレクターを組み合わせて使用し、フォームの残りのフィールドに入力します。
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
ScoreCardScreen.TypeInto(Target.FromSelector("<webctrl id='mathematics' tag='INPUT' />"), "A"); ScoreCardScreen.TypeInto(Target.FromSelector("<webctrl id='physics' tag='INPUT' />"), "B"); ScoreCardScreen.TypeInto(Target.FromSelector("<webctrl id='biology' tag='INPUT' />"), "C"); ScoreCardScreen.TypeInto(Target.FromSelector("<webctrl id='chemistry' tag='INPUT' />"), "A"); ScoreCardScreen.TypeInto(Target.FromSelector("<webctrl id='geography' tag='INPUT' />"), "C"); ScoreCardScreen.TypeInto(Target.FromSelector("<webctrl id='history' tag='INPUT' />"), "A"); ScoreCardScreen.TypeInto(Target.FromSelector("<webctrl id='english' tag='INPUT' />"), "A"); ScoreCardScreen.TypeInto(Target.FromSelector("<webctrl id='computer Science' tag='INPUT' />"), "C"); ScoreCardScreen.TypeInto(Target.FromSelector("<webctrl id='professorComments' tag='INPUT' />"), "The student is doing okay, very hardworking and does its best"); - Click API を使用して、[Add score card details] を選択します。
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
// 10. Click the "Add score card details" button using an Object Repository descriptor ScoreCardScreen.Click(AcmeApp.Acme.StudentsScoreCard.AddScoreCardDetailsButton); RunWorkflow()
メソッドを使用して、ライブラリ プロジェクトからインポートしたワークフローを呼び出します。このメソッドにプロジェクト内のワークフローのパスを指定します。[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
// 11. Invoke imported workflow from library RunWorkflow("notifyStudentScoreCardAdded.xaml");Dispose()
API を使用して、シナリオを自動化するために開いたブラウザー タブを閉じます。[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
// 12. Close the applications/browsers you opened, to finish he automation ScoreCardScreen.Dispose();
To follow the steps and try out the tutorial yourself, see the following sample project: Using imported library projects in coded automations. The file contains the library project, as well.