- 概要
- UI Automation
- UI Automation アクティビティ パッケージについて
- UI Automation を使用して自動化されるアプリケーションと技術
- プロジェクトの対応 OS
- UI-ANA-016 - [ブラウザーを開く] に使用されている URL を検出
- UI-ANA-017 - [エラー発生時に実行を継続] の値が True
- UI-ANA-018 - OCR/画像関連のアクティビティのリスト
- UI-DBP-006 - コンテナーの使用
- UI-DBP-013 - Excel の自動化方法の誤用
- UI-DBP-030 - セレクター内での変数の使用禁止
- UI-DBP-031 - アクティビティの検証
- UI-PRR-001 - クリックをシミュレート
- UI-PRR-002 - 入力をシミュレート
- UI-PRR-003 - [アプリケーションを開く] の誤用
- UI-PRR-004 - ハードコードされた待機時間
- UI-REL-001 - セレクター内の大きいインデックス値
- UI-SEC-004 - メール アドレスのデータを含むセレクター
- UI-SEC-010 - アプリ/URL の制限
- UI-USG-011 - 許可されていない属性
- UX-SEC-010 - アプリ/URL の制限
- UX-DBP-029 - セキュリティで保護されていないパスワードの使用
- UI-PST-001 - [プロジェクト設定] の監査ログ レベル
- UiPath ブラウザー移行ツール
- クリッピング領域
- Computer Vision レコーダー
- アクティビティの索引
- アクティベート
- アンカー ベース
- ブラウザーにアタッチ
- ウィンドウにアタッチ
- ユーザー入力をブロック
- 吹き出し
- チェック
- クリック
- 画像をクリック
- 画像クリック トリガー
- OCR で検出したテキストをクリック
- テキストをクリック
- クリック トリガー
- アプリケーションを閉じる
- タブを閉じる
- ウィンドウを閉じる
- コンテキスト対応のアンカー
- 選択されたテキストをコピー
- 要素属性変更トリガー
- 要素の存在を確認
- 要素スコープ
- 要素ステート変更トリガー
- UI ツリーをエクスポート
- 構造化データを抽出
- 子要素を探す
- 要素を探す
- 画像を探す
- 一致する画像を探す
- OCR でテキスト位置を探す
- 相対要素を探す
- テキスト位置を探す
- アクティブ ウィンドウを取得
- 親要素を取得
- 属性を取得
- イベント情報を取得
- クリップボードから取得
- フル テキストを取得
- OCR でテキストを取得
- パスワードを取得
- 位置を取得
- ソース要素を取得
- テキストを取得
- 表示中のテキストを取得
- 前に戻る
- 次に進む
- ホームに移動
- Google Cloud Vision OCR
- ウィンドウを隠す
- 強調表示
- ホットキー トリガー
- ホバー
- 画像上でホバー
- OCR で検出したテキスト上でホバー
- テキスト上でホバー
- 画像の存在を確認
- 画面上で指定
- .NET コードを挿入
- JS スクリプトを挿入
- ActiveX メソッドを呼び出し
- キー操作トリガー
- 画像を読み込み
- ウィンドウを最大化
- Microsoft Azure ComputerVision OCR
- Microsoft OCR
- Microsoft Project Oxford Online OCR
- ウィンドウを最小化
- イベントを監視
- マウス トリガー
- ウィンドウを移動
- URL に移動
- OCR でテキストの存在を確認
- 要素が出現したとき
- 要素が消滅したとき
- 画像が出現したとき
- 画像が消滅したとき
- アプリケーションを開く
- ブラウザーを開く
- ブラウザーを更新
- ユーザー イベントを再生
- ウィンドウを復元
- 画像を保存
- 項目を選択
- 複数の項目を選択
- ホットキーを押下
- クリッピング領域を設定
- フォーカスを設定
- テキストを設定
- クリップボードに設定
- Web 属性を設定
- ウィンドウを表示
- プロセスを開始
- システム トリガー
- スクリーンショットを作成
- Tesseract OCR
- テキストの存在を確認
- ツールチップ
- 文字を入力
- SecureString で文字を入力
- フォアグラウンドを使用
- 属性を待つ
- 要素の消滅を待つ
- 画像の消滅を待つ
- アプリケーション イベント トリガー
- ユーザー入力をブロック
- チェック/チェック解除
- アプリのステートを確認
- 要素を確認
- クリック
- クリック イベント トリガー
- ドラッグ アンド ドロップ
- 表データを抽出
- 要素を探す
- 繰り返し (各 UI 要素)
- ブラウザーのデータを取得
- クリップボードを取得
- テキストを取得
- URL を取得
- URL に移動
- 強調表示
- ホバー
- JS スクリプトを挿入
- キーボード ショートカット
- キー押下イベント トリガー
- マウス スクロール
- ブラウザー内を移動
- 項目を選択
- ブラウザーのデータを設定
- クリップボードに設定
- ランタイム ブラウザーを設定
- フォーカスを設定
- テキストを設定
- スクリーンショットを作成
- 文字を入力
- ユーザー入力のブロックを解除
- アプリケーション/ブラウザーを使用
- ウィンドウ操作
- UI Automation API を使用してブラウザー検索を実行し、結果を取得する
- Web の閲覧
- 画像を検索する
- 画像をクリックする
- イベントをトリガーおよび監視する
- ファイルを作成して上書きする
- HTML ページ: 情報を抽出して操作する
- ウィンドウの操作
- リスト項目の選択の自動化
- ウィンドウ要素を探して操作する
- テキスト操作の自動化を行う
- 画像を読み込んで処理する
- マウスでアクティブ化する操作を管理する
- アプリケーションランタイムの操作を自動化する
- ローカル アプリケーションの自動実行
- ブラウザーのナビゲーション
- Web オートメーション
- トリガー スコープの例
- DevExpress での UI Automation の有効化
- Computer Vision Local Server
- モバイル オートメーション
- ターミナル

UI Automation アクティビティ
OCR と画像ベースの自動化の使用例
仮想環境での自動化は難度が高いため、OCR と画像ベースの自動化が、通常一緒に利用されます。そこで、ここでは、スキャンした請求書から社員のメール アドレスと請求書番号を取得するオートメーションを作成しました。取得した情報は仮想マシン上の架空の経費アプリケーション (ExpenseIt) に入力され、請求書の総額とアプリケーションでの総額が比較されます。
- 新しい シーケンスを作成します。
- スキャンした請求書を開きます。例で使用されている請求書は、 こちらからダウンロードできます。このファイルには、Adobe Acrobat Reader の使用をお勧めします。
- 相対スクレイピングで説明したように、OCR テクノロジを使用して社員のメール アドレスをスクレイピングします。セレクターを保持し、他のすべてのアクティビティにどこでアクションを実行するのかを知らせる [ウィンドウにアタッチ ] コンテナーが生成されます。この例では Attach PDF に名前を変更しています。コンテナーの中には、相対スクレイピング用のアンカーを選択する [ 画像を探す] アクティビティと、社員のメール アドレスを取得する [OCRでテキストを取得 ] アクティビティがあります。また、2 つの [クリッピング領域を設定 ] アクティビティがあり、一方は 1 つ目のクリッピング領域を 2 つ目のクリッピング領域に変換し、もう一方はクリッピング領域をリセットします。
- [変数] パネルで、
emailという新しい GenericValue 変数を作成します。 - 前に生成された [OCR でテキストを取得] アクティビティの [テキスト] プロパティに、email 変数を指定します。
- 以上のシーケンスに Read Email という名前を付けます。

UiPath Studio が備えている OCR エンジンにはそれぞれ長所と短所があります。どれを使用するかを決める際は、状況に応じて使い分け、それぞれの状況でどれが最適な結果となるのかをテストすることが重要となります。作業ごとに OCR エンジンを変更することで、結果を向上させることができます。
-
「相対スクレイピング」で説明しているように、OCR テクノロジを使用して請求書番号をスクレイピングします。セレクターを保持し、他のすべてのアクティビティにどこでアクションを実行するのかを知らせる [ウィンドウにアタッチ] コンテナーが生成されます。この例では Attach PDF に名前を変更しています。コンテナーの中には、相対スクレイピング用のアンカーを選択する [画像を探す] アクティビティと、社員の請求書番号を取得する [OCR でテキストを取得] アクティビティがあります。また、2 つの [クリッピング領域を設定] アクティビティがあり、一方は 1 番目のクリッピング領域を 2 番目のクリッピング領域に変換し、もう一方はクリッピング領域をリセットします。
-
[変数] パネルで、
invoiceNoという新しい GenericValue 変数を作成します。 -
前に生成された [OCR でテキストを取得] アクティビティの [テキスト] プロパティに、
invoiceNo変数を指定します。 -
以上のシーケンスに Read Invoice Number という名前を付けます。

-
「相対スクレイピング」で説明しているように、OCR テクノロジを使用して社員の経費総額をスクレイピングします。セレクターを保持し、他のすべてのアクティビティにどこでアクションを実行するのかを知らせる [Attach PDF] コンテナーがレコーダーによって生成されます。コンテナーには、相対スクレイピング用のアンカーを選択する [画像を探す] アクティビティと、社員の経費総額を取得する [OCR でテキストを取得] アクティビティがあります。また、2 つの [クリッピング領域を設定] アクティビティがあり、一方は 1 番目のクリッピング領域を 2 番目のクリッピング領域に変換し、もう一方はクリッピング領域をリセットします。
-
[変数] パネルで、
totalValueという新しい GenericValue 変数を作成します。 -
前に生成された [OCR でテキストを取得] アクティビティの [テキスト] プロパティに、
totalValue変数を指定します。 -
以上のシーケンスに Read Total Expenses という名前を付けます。
注:仮想マシン環境でアプリケーションを開く場合の最善の方法として、仮想マシンのデスクトップにアプリケーションのショートカットを作成しホットキーを割り当てることをお勧めします。[OCRで検出したテキストをクリック] を使用した場合、背景色の変化や選択するアイコンの変化によって、アプリケーションのアイコンをクリックできない場合があります。
-
仮想マシンのデスクトップ上に ExpenseIt アプリケーションのショートカットを作成します。
-
ショートカットを右クリックし、コンテキスト メニューから [プロパティ] を選択します。[ショートカットのプロパティ] ウィンドウが表示されます。
-
[ショートカット] タブの [ショートカット キー] フィールドで、ホットキーとして使用するキー (Alt + Ctrl + T キーなど) を押して、このアプリケーションにホットキーを割り当てます。

-
[Citrix レコーディングツールバー] を開いて新しいレコーディングセッションを開始します。
-
このアプリケーションのショートカットに割り当てておいたホットキーを仮想マシンウィンドウに送信する動作をレコーディングします。
-
相対スクレイピングを使用し、ラベルの場所に基づいて ExpenseIt アプリケーションの [メール] フィールドをクリックします。
-
ExpenseIt アプリケーションの [Email] フィールドに、
email変数を入力します。 -
相対スクレイピングを使用して、ExpenseIt アプリケーションの [Employee Number] フィールドを、ラベルの位置に基づいてクリックします。
-
ExpenseIt アプリケーションの [Employee Number] フィールドに、
invoiceNo変数を追加します。 -
レコーディング ウィザードで [保存 & 終了] をクリックします。セレクターを保持し、他のすべてのアクティビティにどこでアクションを実行するのかを知らせる [ウィンドウにアタッチ] コンテナーが、レコーダーによって生成されます。このコンテナーの中には、[ホットキーを押下] アクティビティ、[Email] ラベルの右側のフィールドをクリックする [画像をクリック] アクティビティ、フィールドに email 変数を入力する [文字を入力] アクティビティ、[Employee Number] ラベルの右側のフィールドをクリックする [画像をクリック] アクティビティ、フィールドに
invoiceNo変数を入力する [文字を入力] アクティビティがあります。
-
[Citrix レコーディングツールバー] を開いて新しいレコーディングセッションを開始します。
-
ExpenseIt アプリケーションの [Create Expense Report] ボタンをクリックする動作を記録します。
-
相対スクレイピングを使用して、[Total Expenses ($)] ラベルに対応する値をスクレイピングします。
-
レコーディング ウィザードで [保存 & 終了] をクリックします。セレクターを保持し、他のすべてのアクティビティにどこでアクションを実行するのかを知らせる [ウィンドウにアタッチ] コンテナーが、レコーダーによって生成されます。このコンテナーの中には、[Create Expense Report] ボタンをクリックする [OCR で検出したテキストをクリック] アクティビティ、相対スクレイピング用のアンカーを設定する [画像を探す] アクティビティ、経費総額を取得する [OCR でテキストを取得] アクティビティがあります。また、2 つの [クリッピング領域を設定] アクティビティがあり、一方は 1 つ目のクリッピング領域を 2 つ目のクリッピング領域に変換し、もう一方はクリッピング範囲をリセットします。

-
[変数] パネルで、
totalExpenseという新しい GenericValue 変数を作成します。 -
前に生成された [OCR でテキストを取得] アクティビティの [テキスト] プロパティ フィールドに、
totalExpense変数を指定します。 -
最後に生成されたレコーディング シーケンスの後に [条件分岐 (if)] アクティビティをドラッグします。
-
[条件分岐 (if)] アクティビティの [Condition] プロパティに
totalExpense = totalValueを設定します。これで、請求書の総額が経費アプリケーションの金額と等しいかどうかがチェックされます。 -
[条件分岐 (if)] アクティビティの [Then] セクションに [メッセージ ボックス] アクティビティをドラッグします。
-
[メッセージ ボックス] の [テキスト] プロパティ フィールドに、金額が等しく請求書が正しいことを知らせるメッセージを書き込みます。
-
[条件分岐 (if)] アクティビティの [Else] セクションに [メッセージ ボックス] アクティビティをドラッグします。
-
[メッセージ ボックス] の [テキスト] プロパティ フィールドに、金額が等しくなく請求書が正しくないことを知らせるメッセージを書き込みます。

-
F5 キーを押してオートメーションを実行します。オートメーションによって、スキャンした請求書の社員データが ExpenseIt アプリケーションに入力され、請求書の総額と記録済みの経費総額が比較されて、金額が等しいかどうかがユーザーに表示されます。
このオートメーションは仮想マシンへの接続を伴うため、元のプロジェクトをアップロードしても役に立ちません。別の仮想マシンでは機能しないからです。ここで紹介した手順に従って独自のプロジェクトを作成することをお勧めします。