- 概要
- 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 で文字を入力
- フォアグラウンドを使用
- 属性を待つ
- 要素の消滅を待つ
- 画像の消滅を待つ
- Computer Vision ローカル サーバー
- モバイル オートメーション
- リリース ノート
- プロジェクトの対応 OS
- セレクターの属性から変数を作成する
- モバイル オートメーション API 入門
- ターミナル
モバイル オートメーション API 入門
このクイックスタート ガイドは、Mobile Automation API を使用して初めてのコード化されたオートメーションを作成するための手引きです。このチュートリアルでは、自動テストを目的として UiPath® Android Basic アプリ と Sauce Labs の Google Pixel Emulator を使用します。
コード化されたオートメーション内で目的のモバイル デバイスとアプリケーションを使用するには、まず MDM (モバイル デバイス マネージャー) でそれらを作成する必要があります。
- アプリケーションを作成するには、以下の手順を実行します。
- MDM を開き、[アプリケーション] に移動します。
- [アプリケーションを追加] を選択します。
- [アプリケーションを編集] ウィンドウで、必要な情報を入力します。
- 名前: この例では、
Basic App - Android
を使用します。 - 種類: ネイティブ アプリケーションの場合は [アプリ] を選択します。
- プラットフォーム: [Android] を選択して、Android アプリケーションを自動化します。
- アプリ: この例では、Basic Android アプリへのリンク
https://uipathtestappsto.blob.core.windows.net/testapps/BasicAppAndroid.apk
を入力します。 - アプリのパッケージ: モバイル アプリケーションのパッケージ (例:
com.example.basicapp
) を入力します。 - アプリのアクティビティ: アクティビティのインスタンス (例:
.core.MainActivity
) を入力します。 - [希望する追加機能] に
appium:app
機能を追加して、アプリケーションが期待どおりに動作するようにします。
表 1. 希望する追加機能 名前 値 (Value) appium:app
appium:app https://uipathtestappsto.blob.core.windows.net/testapps/BasicAppAndroid.apk
- 名前: この例では、
- デバイスを作成するには、以下の手順を実行します。
- [デバイス] に移動し、[デバイスを追加] を選択します。
- デバイスに名前を付けます。この例では、
Google Pixel 3a GoogleAPI Emulator
を使用します。 - パラメーター [Appium URL]、[プラットフォーム]、[デバイス名]、[プラットフォーム バージョン] を設定します。
- 選択したモバイル デバイス ファーム プロバイダーからパラメーターを取得します。この例では、Sauce Labs を使用しています。
- [Appium URL] を取得するには、[Account]、[User Settings] の順に移動します。[Driver Creation] の下にある [On-demand URL] をコピーします。
- [プラットフォーム]、[デバイス名]、[プラットフォーム バージョン] を取得するには、[Automated]、[Platform Configurator] の順に移動します。
Google Pixel 3a GoogleAPI Emulator
とAndroid Emulator version 10.0
の機能を選択します。[Config Script] で、Appium version
を選択します。この例では、2.0.0 を使用します。 - Sauce Labs から MDM に値をコピーして貼り付けます。
-
- [保存して閉じる] を選択します。
- [このデバイス上でアプリケーションを開始] を選択し、以前に作成したアプリケーションにデバイスを接続します。
希望のモバイル アプリケーションを自動化するには、そのモバイル要素をプロジェクトの [オブジェクト リポジトリ] に記録します。この例では、自動化に使用する 3 つの UI 要素を含む、一般的なホーム画面を備えた Basic App アプリケーションを作成しました。オブジェクト リポジトリの構造がどのように表示されるかについては、以下のリストをご覧ください。
- BasicApp
- HomeScreen
- EditText
- SingleClickButton
- VerifyText
- HomeScreen
MDM でデバイスとアプリケーションを設定したら、オートメーションのコードの記述を開始します。モバイル オートメーション API を使用する前に、対応する API を使用して、選択したモバイル デバイスとアプリケーション間の接続を確立する必要があります。
connection
は、デバイスとアプリケーションの間に作成するコネクションを表すクラスであり、モバイル テスト シナリオの自動化に使用できる API を公開します。connection
の作成について詳しくは、「コネクション」をご覧ください。
コネクションを作成するために使用可能な専用の API が一式用意されています。この例では、String 型のデバイス名とアプリケーション名を必要とする、2 番目のオーバーロードを含む、Connect API を使用しました。
以下の手順に従いコネクションを作成します。
- 個別の変数を作成しないように、
using
ステートメントから始めます。 using
ステートメント内で、2 番目のオーバーロード バージョンを含む Connect API を呼び出します。このオーバーロードの場合は、デバイス名とアプリケーション名を入力して、コネクションを確立します。
[TestCase] public void Execute() { using (Connection connection = mobile.Connect( "Google Pixel 3a GoogleAPI Emulator", "Basic App - Android"))
[TestCase] public void Execute() { using (Connection connection = mobile.Connect( "Google Pixel 3a GoogleAPI Emulator", "Basic App - Android"))- 必要に応じて、デバッグ目的で
Log
メッセージを追加できます。Log("Connection established");
Log("Connection established");
この例の自動化のフローには、特定のボタンのタップ、モバイル画面に表示されるテキストの取得、スライダー コントロールのスワイプが含まれます。これらのアクションは、実際のモバイル オートメーションのシナリオをシミュレートします。
IElementDescriptors
を使用しました。これらは、オブジェクト リポジトリから直接アクセスする UI 要素を表します。モバイル オートメーション API では、IElementDescriptors
以外にも、他の種類のセレクター (ObjectRepositoryTarget
や SelectorTarget
など) を使用できます。他の種類のセレクターをいつどのように使用したらよいかについては、「API セレクター」をご覧ください。
- Tap API を呼び出して Android Basic アプリの SingleClickButton をクリックします。
// Tap the SingleClickButton connection.Tap(Descriptors.BasicApp.HomeScreen.SingleClickButton); Log("Tapped SingleClickButton ");
// Tap the SingleClickButton connection.Tap(Descriptors.BasicApp.HomeScreen.SingleClickButton); Log("Tapped SingleClickButton "); - SetText API を使用して、特定のテキストを [EditText] フィールドに入力します。
string expectText = "Random text"; connection.SetText(Descriptors.BasicApp.HomeScreen.EditText, expectText); Log("Inserted random text");
string expectText = "Random text"; connection.SetText(Descriptors.BasicApp.HomeScreen.EditText, expectText); Log("Inserted random text"); - 前の手順で設定したテキストを取得し、[テキストを検証] UI 要素のテキストと一致するかを検証します。Get Text と Verify Expression API を使用します。
var actualText = connection.GetText(Descriptors.BasicApp.HomeScreen.VerifyText); testing.VerifyExpression(expectText == actualText, "EditText validation failed."); SelectorTarget selector = null;
var actualText = connection.GetText(Descriptors.BasicApp.HomeScreen.VerifyText); testing.VerifyExpression(expectText == actualText, "EditText validation failed."); SelectorTarget selector = null; - PositionalSwipe API を使用してスライダー コントロールを移動します。
PositionalSwipe API には、スワイプ操作の開始位置と終了位置を表す 2 つの
Point
変数が必要です。わかりやすくするために、API を使用する前にこれらのポイントを作成してください。// Perform a positional swipe operation to use the slider var startPoint = new Point(226, 304); var endPoint = new Point(296, 304); connection.PositionalSwipe(startPoint, endPoint); Log("Performed Swipe action.");
// Perform a positional swipe operation to use the slider var startPoint = new Point(226, 304); var endPoint = new Point(296, 304); connection.PositionalSwipe(startPoint, endPoint); Log("Performed Swipe action.");画面の位置を取得するには、MDM でアクティブなコネクションに移動します。モバイル画面の上にカーソルを置きます。これにより、MDM の左下隅にカーソルの位置がピクセル単位で表示されます。
このクイックスタート ガイドの手順を実行するか、Mobile Automation API クイックスタート サンプルをダウンロードしてお試しください。