- 概要
- 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-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 Automation API を使用してブラウザー検索を実行し、結果を取得する
- Web の閲覧
- 画像を検索する
- 画像をクリックする
- イベントをトリガーおよび監視する
- ファイルを作成して上書きする
- HTML ページ: 情報を抽出して操作する
- ウィンドウの操作
- リスト項目の選択の自動化
- ウィンドウ要素を探して操作する
- テキスト操作の自動化を行う
- 画像を読み込んで処理する
- マウスでアクティブ化する操作を管理する
- アプリケーションランタイムの操作を自動化する
- ローカル アプリケーションの自動実行
- ブラウザーのナビゲーション
- Web オートメーション
- トリガー スコープの例
- DevExpress での UI Automation の有効化
- Computer Vision Local Server
- モバイル オートメーション
- ターミナル
HTML ページ: 情報を抽出して操作する
以下の例では、Web ページを参照して情報を抽出し、その情報を使用してローカルの HTML ページを新規作成する操作を自動化する方法を説明します。[文字を入力]、[クリック]、[テキストを取得]、[ブラウザーを開く] などのアクティビティを使用します。これらのアクティビティは、UiPath.UIAutomation.Activities パッケージに含まれています。
サンプルと同等のオートメーション プロセスは以下のように構築できます。
- Studio を開いて、新しいプロセスを作成します。
- Internet Explorer を開き、
www.goodreads.com
に移動します。 -
ワークフロー デザイナーに [フローチャート] コンテナーをドラッグします。
-
次の変数を作成します。
変数名
変数の型
既定値
bookFound
文字列
bookName
GenericValue
-
-
[フローチャート] コンテナー内部に [入力ダイアログ] アクティビティをドラッグし、[Start] ノードに接続します。
- このアクティビティをダブルクリックして開きます。
- 式
"Book Name:"
を Title フィールドに追加します。 - 式
"Enter the name of a book you read:"
を Label (ラベル) フィールドに追加します。 - [プロパティ] パネルの [結果] フィールドに変数
bookName
を追加します。 -
アクティビティは、次のスクリーンショットのようになります。
- [フローチャート] 画面に戻ります。
-
[シーケンス] コンテナーをドラッグして、[入力ダイアログ] アクティビティに接続します。これは、
.html
ファイルの新規作成で使用します。-
次の変数を作成します。
変数名
変数の型
既定値
fileExists
Boolean
-
-
[シーケンス] コンテナーをダブルクリックして開き、[パスの存在を確認] アクティビティをその中にドラッグします。
- [パスの種類] ドロップダウン リストから [ファイル] を選択します。
- [Path] フィールドに式
"books.html"
を追加します。 - [プロパティ] パネルの [存在の有無] フィールドに変数
fileExists
を追加します。
-
[パスの存在を確認] アクティビティの下に [条件分岐 (if)] アクティビティをドラッグします。
- [条件] フィールドに変数
fileExists
を追加します。
- [条件] フィールドに変数
-
[Else] フィールドに [テキスト ファイルに書き込み] アクティビティを配置します。
- [FileName] フィールドに式
"books.html"
を追加します。 -
[テキスト]フィールドに以下のコードを追加します。
<html> <head> <title>Books</title> </head> <body> </body> </html>
-
アクティビティは、次のスクリーンショットのようになります。
- [FileName] フィールドに式
- [フローチャート] 画面に戻ります。
-
[ブラウザーを開く] アクティビティをドラッグして、[シーケンス] コンテナーと接続します。
- このアクティビティをダブルクリックして開きます。
- [プロパティ] パネルの [ブラウザーの種類] ドロップダウン リストから [IE] を選択します。
- [URL] フィールドに式
"https://www.goodreads.com/search"
を追加します。指定した Web サイトが開きます。 - [新しいセッション] オプションのチェック ボックスを選択します。選択したブラウザーが新しいセッションとして開きます。
-
[ブラウザーを開く] アクティビティ内の [Do] コンテナーを選択して次の変数を作成します。
変数名
変数の型
既定値
noResults
GenericValue
-
[Do] シーケンス内部に [文字を入力] アクティビティをドラッグします。
- アクティビティ内部の [ブラウザー内で要素を指定] オプションをクリックします。これで目的のアプリケーションを選択できるようになりました。以下の GIF では、実行する必要があるすべての手順を示しています。
- [テキスト] フィールドに変数
bookName
を追加します。
- アクティビティ内部の [ブラウザー内で要素を指定] オプションをクリックします。これで目的のアプリケーションを選択できるようになりました。以下の GIF では、実行する必要があるすべての手順を示しています。
-
[クリック] アクティビティを、[文字を入力] アクティビティの下に配置します。
- アクティビティ内部の [ブラウザー内で要素を指定] オプションをクリックします。これで目的のアプリケーションを選択できるようになりました。以下の GIF では、実行する必要があるすべての手順を示しています。
- [プロパティ] パネルの [実行前の待機時間] フィールドに値
1000
を追加します。何らかの操作を開始するまでに 1 秒の待機が発生します。
- アクティビティ内部の [ブラウザー内で要素を指定] オプションをクリックします。これで目的のアプリケーションを選択できるようになりました。以下の GIF では、実行する必要があるすべての手順を示しています。
-
[クリック 'INPUT'] アクティビティの下に [テキストを取得] アクティビティをドラッグします。
- アクティビティ内部の [ブラウザー内で要素を指定] オプションをクリックします。これで目的のアプリケーションを選択できるようになりました。以下の GIF では、実行する必要があるすべての手順を示しています。
- [プロパティ] パネルの [値] フィールドに変数
noResults
を追加します。
- アクティビティ内部の [ブラウザー内で要素を指定] オプションをクリックします。これで目的のアプリケーションを選択できるようになりました。以下の GIF では、実行する必要があるすべての手順を示しています。
-
[テキストを取得 'H3'] アクティビティの下に [条件分岐 (if)] アクティビティをドラッグします。
- [条件 (Condition)] フィールドに式
noResults.toLower.Trim.Contains("no results")
を追加します。
- [条件 (Condition)] フィールドに式
- [Then] フィールド内部に [シーケンス] コンテナーを配置します。
-
[シーケンス] コンテナー内に [メッセージ ボックス] アクティビティをドラッグします。
- [テキスト] フィールドにメッセージ
"Book not found. Please search another one."
を追加します。結果が得られなかった場合は、このメッセージが表示されます。
- [テキスト] フィールドにメッセージ
- [メッセージ ボックス] アクティビティの下に [タブを閉じる] アクティビティをドラッグします。これによって、Web ブラウザーで開いているタブが閉じます。
- [Else] フィールド内部に [シーケンス] コンテナーを配置します。
-
[シーケンス] コンテナー内部に [テキストを取得] アクティビティをドラッグします。
- アクティビティ内部の [ブラウザー内で要素を指定] オプションをクリックします。これで目的のアプリケーションを選択できるようになりました。以下の GIF では、実行する必要があるすべての手順を示しています。
- [プロパティ] パネルの [値] フィールドに変数
bookFound
を追加します。
- アクティビティ内部の [ブラウザー内で要素を指定] オプションをクリックします。これで目的のアプリケーションを選択できるようになりました。以下の GIF では、実行する必要があるすべての手順を示しています。
-
[テキストを取得 'SPAN’] アクティビティの下に [条件分岐 (if)] アクティビティをドラッグします。
- [条件 (Condition)] フィールドに式
bookFound.ToLower.Trim.Contains(bookName.ToLower.Trim)
を追加します。
- [条件 (Condition)] フィールドに式
-
[Then] フィールド内部に [シーケンス] コンテナーをドラッグして、次の変数を作成します。
変数名
変数の型
既定値
realName
文字列
-
[シーケンス] コンテナー内部に [クリック] アクティビティを配置します。
- アクティビティ内部の [ブラウザー内で要素を指定] オプションをクリックします。これで本のタイトルを選択できるようになりました。以下の GIF では、実行する必要があるすべての手順を示しています。
- アクティビティ内部の [ブラウザー内で要素を指定] オプションをクリックします。これで本のタイトルを選択できるようになりました。以下の GIF では、実行する必要があるすべての手順を示しています。
-
[クリック 'SPAN’] アクティビティの下に別の [シーケンス] コンテナーをドラッグし、その名前を
Get book Details
として、次の変数を作成します。変数名
変数の型
既定値
description
GenericValue
author
GenericValue
booksContent
文字列
alreadyExists
Boolean
-
[シーケンス] コンテナー内部に [テキストを取得] アクティビティをドラッグします。
- アクティビティ内部の [ブラウザー内で要素を指定] オプションをクリックします。これで本のタイトルを選択できるようになりました。以下の GIF では、実行する必要があるすべての手順を示しています。
- [プロパティ] パネルの [値] フィールドに変数
realName
を追加します。
- アクティビティ内部の [ブラウザー内で要素を指定] オプションをクリックします。これで本のタイトルを選択できるようになりました。以下の GIF では、実行する必要があるすべての手順を示しています。
-
[テキストを取得 'H1 bookTitle’] アクティビティの下に [代入] アクティビティを配置します。
- [左辺値 (To)/宛先] フィールドに変数
realName
を追加します。 - [右辺値 (Value)] フィールドに式
realName.Replace(":","").Replace("'","").Trim
を追加します。
- [左辺値 (To)/宛先] フィールドに変数
-
[代入] アクティビティの下に [パスの存在を確認] アクティビティを追加します。
- [パスの種類] ドロップダウン リストから [ファイル] を選択します。
- [Path] フィールドに式
Environment.CurrentDirectory+"\"+realName+".jpg"
を追加します。 - [プロパティ] パネルの [存在の有無] フィールドに変数
alreadyExists
を追加します。
-
[パスの存在を確認] アクティビティの下に別の [条件分岐 (if)] アクティビティをドラッグします。
- [条件] フィールドに変数
alreadyExists
を追加します。
- [条件] フィールドに変数
- [Then] フィールド内部に [シーケンス] コンテナーを配置します。
-
[シーケンス] コンテナー内に [メッセージ ボックス] アクティビティをドラッグします。
- [テキスト] フィールドにメッセージ
"Book already added."
を追加します。 - [プロパティ] パネルで、[ボタン] ドロップダウン メニューから [OK] オプションを選択します。
- [テキスト] フィールドにメッセージ
- [メッセージ ボックス] アクティビティの下に [タブを閉じる] アクティビティをドラッグします。これによって、Web ブラウザーで開いているタブが閉じます。
- [Else] フィールド内部に [シーケンス] コンテナーを配置します。
- [シーケンス] コンテナー内部に同じコンテナーをもう 1 つ配置します。
-
[シーケンス] コンテナー内部に [テキストを取得] アクティビティをドラッグします。
- アクティビティ内部の [ブラウザー内で要素を指定] オプションをクリックします。これで本のタイトルを選択できるようになりました。以下の GIF では、実行する必要があるすべての手順を示しています。
- [プロパティ] パネルの [値] フィールドに変数
description
を追加します。
- アクティビティ内部の [ブラウザー内で要素を指定] オプションをクリックします。これで本のタイトルを選択できるようになりました。以下の GIF では、実行する必要があるすべての手順を示しています。
-
[getDescription (説明を取得)] アクティビティの下に [テキストを取得] アクティビティをドラッグします。
- アクティビティ内部の [ブラウザー内で要素を指定] オプションをクリックします。これで本のタイトルを選択できるようになりました。以下の GIF では、実行する必要があるすべての手順を示しています。
- [プロパティ] パネルの [値] フィールドに変数
author
を追加します。
- アクティビティ内部の [ブラウザー内で要素を指定] オプションをクリックします。これで本のタイトルを選択できるようになりました。以下の GIF では、実行する必要があるすべての手順を示しています。
-
[getAuthor (作者を取得)] アクティビティの下に [クリック] アクティビティをドラッグします。
- アクティビティ内部の [ブラウザー内で要素を指定] オプションをクリックします。これで本のタイトルを選択できるようになりました。以下の GIF では、実行する必要があるすべての手順を示しています。
- [プロパティ] パネルで、[マウス ボタン] ドロップダウン リストから [BTN_RIGHT] を選択します。このアクションでは、画像が右クリックされてメニューが表示されます。
- [X のオフセット] フィールドに値
89
を追加します。 - [Y のオフセット] フィールドに値
22
を追加します。 - [位置] ドロップダウン リストから [TopLeft] オプションを選択します。
- アクティビティ内部の [ブラウザー内で要素を指定] オプションをクリックします。これで本のタイトルを選択できるようになりました。以下の GIF では、実行する必要があるすべての手順を示しています。
-
[クリック 'IMG coverImage'] アクティビティの下に [待機] アクティビティをドラッグします。
- [プロパティ] パネルで、[待機期間] フィールドに値
00:00:02
を追加します。これにより 2 秒の待機が設定されます。
- [プロパティ] パネルで、[待機期間] フィールドに値
-
[待機] アクティビティの下に新しい [クリック] アクティビティを配置します。
- アクティビティ内部の [ブラウザー内で要素を指定] オプションをクリックします。これで本のタイトルを選択できるようになりました。以下の GIF では、実行する必要があるすべての手順を示しています。
- アクティビティ内部の [ブラウザー内で要素を指定] オプションをクリックします。これで本のタイトルを選択できるようになりました。以下の GIF では、実行する必要があるすべての手順を示しています。
-
[クリック 'menu item'] アクティビティの下に [文字を入力] アクティビティをドラッグします。
- アクティビティ内部の [ブラウザー内で要素を指定] オプションをクリックします。これで本のタイトルを選択できるようになりました。以下の GIF では、実行する必要があるすべての手順を示しています。
- [プロパティ] パネルの [テキスト] フィールドに式
Environment.CurrentDirectory+"\"+realName+".jpg"
を追加します。
- アクティビティ内部の [ブラウザー内で要素を指定] オプションをクリックします。これで本のタイトルを選択できるようになりました。以下の GIF では、実行する必要があるすべての手順を示しています。
-
[文字を入力 'Edit'] アクティビティの下に [クリック] アクティビティを配置します。
- アクティビティ内部の [ブラウザー内で要素を指定] オプションをクリックします。これで本のタイトルを選択できるようになりました。以下の GIF では、実行する必要があるすべての手順を示しています。
- アクティビティ内部の [ブラウザー内で要素を指定] オプションをクリックします。これで本のタイトルを選択できるようになりました。以下の GIF では、実行する必要があるすべての手順を示しています。
-
[クリック 'Button'] アクティビティの下に [テキスト ファイルに書き込み] アクティビティをドラッグします。
- [FileName] フィールドに式
realName+".html"
を追加します。 -
[テキスト]フィールドに以下のコードを追加します。
"<html> <head> <title>"+realName+"</title> </head> <body> <a href='books.html'>BACK</a> <h1>"+realName+"</h1> <h2>by "+author+"</h2> <img href='"+realName+".jpg'> <h3>"+description+"</h3> </body> </html>"
"<html> <head> <title>"+realName+"</title> </head> <body> <a href='books.html'>BACK</a> <h1>"+realName+"</h1> <h2>by "+author+"</h2> <img href='"+realName+".jpg'> <h3>"+description+"</h3> </body> </html>"
- [FileName] フィールドに式
-
[テキスト ファイルに書き込み] アクティビティの下に [テキスト ファイルを読み込み] アクティビティを配置します。
- [FileName] フィールドに式
"books.html"
を追加します。 - Content (コンテンツ) フィールドに変数
booksContent
を追加します。
- [FileName] フィールドに式
-
[テキスト ファイルを読み込み] アクティビティの下に [テキスト ファイルに書き込み] アクティビティをもう 1 つドラッグします。
- [FileName] フィールドに式
"books.html"
を追加します。 - [テキスト] フィールドに文字列
booksContent.Replace("</body></html>","<h1><a href='"+realName+".html'>"+realName+"</h1></body></html>")
を追加します。
- [FileName] フィールドに式
- [テキスト ファイルに書き込み] アクティビティの下に [タブを閉じる] アクティビティを追加します。
-
[タブを閉じる] アクティビティの下に [ブラウザーを開く] アクティビティをドラッグします。これによって、新規作成された
.html
ファイルが開きます。- [ブラウザーの種類] ドロップダウン リストから [IE] オプションを選択します。
- 式
"file:\\\"+Environment.CurrentDirectory+"\books.html"
を Url フィールドに追加します。
- 最初の [条件分岐 (if)] アクティビティに戻り、[Else] フィールドに [シーケンス] コンテナーを追加します。
-
[シーケンス] コンテナー内に [メッセージ ボックス] アクティビティをドラッグします。
- 式
"Book not found. Please check the name and try again"
を [テキスト] フィールドに追加します。
- 式
- [テキスト ファイルに書き込み] アクティビティの下に [タブを閉じる] アクティビティを追加します。
- ワークフローを実行します。このオートメーション プロセスは、本の名前を要求し、それを www.goodreads.com で検索してその本に関する情報を取得します。つづいて、基本の
.html
ページを作成して、取得した情報をそのページに記述します。