Mobile (JA)
3.1.5 モバイル
モバイルコマンドは7.1からサポートされている。このコマンドは Android Over ADB および xcode 接続でモバイル固有の機能を提供します。
このコマンドは、別々の製品として提供されていた従来の Androidと iOSの 拡張機能(プラグイン)に取って代わるものです。その目的は、モバイルデバイスの自動化のための共通言語を提供し、プラグインのインストールによるオーバーヘッドを回避することです。iOSとAndroidのオペレーティングシステムの性質が異なるため、すべてのモバイルコマンド機能が両方の接続で同じようにサポートされているわけではありません。例えば、ファイルのダウンロードとアップロードはAndroidでのみサポートされ、キーボードマップの操作はiOSに固有です。両プラットフォームを対象とした単一のスクリプトを作成する場合は、本文書の機能互換性に関する注意事項に注意してください。
サポートされている操作の完全なリストは次のとおりです:
操作 | 説明 | iOS Xcode経由 | Android ADB経由 | レガシーiOS/Androidプラグイン |
---|---|---|---|---|
モバイルアラート | アラート処理 | 対応 | 未対応 | 可/不可 |
モバイルアプリ | 現在のアプリIDを取得 | 対応 | 対応 | はい/いいえ |
モバイル検索 | UI要素の操作 | 対応 | 対応 | いいえ/いいえ |
モバイルインストール | デバイスにアプリをインストール | 非対応 | 対応 | いいえ/はい |
モバイルキーボード | キーボード操作 | 一部対応 | 一部対応 | 一部対応(ロード、リマップ)/非対応 |
モバイルキル | デバイス上のアプリをキル | 対応 | 対応 | はい/はい |
モバイルの向き | 画面の向きのハンドリング | 対応 | 対応 | はい/いいえ |
モバイルプル | デバイスからファイルをダウンロード | 非対応 | 対応 | いいえ/はい |
モバイルプッシュ | デバイスにファイルをアップロード | 非対応 | 対応 | 未対応/可 |
モバイルシェル | シェルコマンドの実行 | 非対応 | 対応 | なし/可 |
モバイルスタート | デバイス上でアプリを起動 | 対応 | 対応 | はい |
モバイルアンインストール | デバイスからアプリをアンインストール | 非対応 | 対応 | いいえ/はい |
このコマンドは、レガシープラグインの拡張機能に加え、モバイル検索と呼ばれる新機能を提供します。これは、属性(テキスト、タイプなど)によってデバイス画面上のUIコンポーネントを特定し、そのプロパティを取得し、オプションでアクションを適用(クリック)することができます。これは、iOSとAndroidがXMLドキュメントの形でUIコンポーネントのツリーを取得する機能に基づいている。これは Language Reference#browser コマンドがSelenium駆動のウェブブラウザでコンポーネントを特定するのとよく似ている。
Mobile findの利点は信頼性である。とは異なり Image Search V2 (または Text OCR (“tocr”) と異なり、画面上の標準的なUIコンポーネントをより正確かつ確実に特定することができます。
欠点は、スピード (XML階層の検索が遅い)と、グラフィカル出力(ゲーム)やモバイルウェブブラウザコンテンツのようなカスタムコンテンツを識別できないことです。
コンポーネントを識別するために使用されるアルゴリズムは、次のような画像比較コマンドにもさらされます。 Compareto Command と Waitfor Command と呼ばれるメソッドとして"モバイル".passrate"パラメータは使用されず、このメソッドでは無視されます。将来のリリースで変更される可能性がありますが、"cmparea "も無視されます。
SYNOPSIS
Mobile alert action=get
-モバイルデバイスの画面上にアラートウィンドウがあるかどうかをテストする。
Mobile alert action=dismiss [button=%26lt;button>] [text=%26lt;text_to_type%26gt;] [accept=%26lt;true|false%26gt;].
- アラートを解除する。アラートがない場合は何もしない。
オプション
action=<get|dimiss>
- アラートアクション名。現在サポートされている値は以下の通りです:
"get" - モバイルデバイスにアラートが表示されているかどうかをテストします。アラートがある場合、このメソッドは_MOBILE_ALERT_TEXT、_MOBILE_ALERT_BUTTON_COUNT、_MOBILE_ALERT_BUTTON[n]変数にアラートテキストとボタンの数、およびそれらのラベルを入力します。
"dismiss" - アラートを終了します。オプションで、ボタン、テキスト 、およびaccept パラメータを使用してアラートを閉じる方法を指定できます。
button=<ボタン>
- アラートを解除するボタンの名前(オプション)。以前の「モバイルアラート action=get」の呼び出しによって_MOBILE_ALERT_BUTTON[n]変数に格納されたボタン名のいずれかを使用することができます。ボタンが指定されていない場合、コマンドは1つを選択します。
text=<text_to_type>
- アラートを解除する前にアラートのテキストフィールドに入力するテキスト(オプション)。アラートにテキストフィールドがない場合、このパラメータは無視されます。
accept=<true|false>
- ボタンが指定されていない場合、このパラメータを使用して、アラートを受け入れるかキャンセルするかを指定します。これはアラートに2つ以上のボタン(例えば「OK」と「キャンセル」)が含まれている場合にのみ考慮されます。このパラメータが省略された場合、コマンドはアラートを閉じる方法を選択します。
を返します:
get」アクションはアラートがあれば0を、なければ1を返します。dismiss "アクションは、アラートの解除に成功すると0を、そうでなければ1を返します。
Mobile app
アクティブな(現在表示されている)アプリケーションのIDを_MOBILE_ACTIVE_ID変数に取得する。
戻り値
このコマンドは常に0を返します。
Mobile find [timeout=<time_interval>] [action=<action>] [number=<element_number>]【continue=<true|false>】【<attributes>】。
- 端末画面上のUI要素を指定された属性で 検索 し、オプションでクリックする。要素の属性は、_MOBIlE _FIND接頭辞を持つ変数に格納されます。 クリックが必要な場合は、continueパラメータを使用して、要素が見つからないときにスクリプトをクラッシュさせるか、続行させるかを決定します。
要素検索アルゴリズムは、次のような画像比較コマンドにも公開されています。 Compareto と Waitfor. mobile "と呼ばれるメソッドを探してください。
オプション
timeout=<時間値>
- 要素を探し続けるオプションの時間。有効な time_values.
タイムアウトが指定されない場合、コマンドは要素を一度だけ探します。
タイムアウトが指定され、それが0より大きい場合、コマンドは時間が経過するか要素が見つかるまで要素を探し続けます。
action=<アクション>
- 結果の要素に適用するオプションのアクション。検索によって複数の要素が生成された場合は、numberパラメータを使用してターゲット要素を選択できます。サポートされるアクションは以下のとおりです:
"click" - 要素をクリックします。リンクやボタンなどのクリック可能な要素にのみ適用されます。
number=<要素番号>
- actionで指定したアクションで対象とする要素の序数。デフォルト値は1(最初の要素を使用)。要素数がnumberより小さい場合、コマンドはエラーを投げてスクリプトを終了します。
continue=<true|false>
- 失敗した場合の処理方法を指定します。要素が見つからず、このパラメータが指定されていない場合、またはfalseの 場合、コマンドはスクリプトを終了します。このパラメータがtrueの場合、スクリプトの続行が許可され、コマンドは0以外の終了コードを返します。
<属性>
-属性(検索条件)のリスト:
"xpath=<xpath_expression>" のようなname=valueペアの形式の属性(検索条件)のリスト。 XPath式による検索を行います。このオプションを使用する場合、他の属性を指定することはできません。
"type=<button|input|text>" を指定します。 要素のタイプ。"button" (任意の認識されたタイプの標準ボタン)、"input" (編集可能なテキストコンポーネント)、または "text" (静的テキストを表示するコンポーネント) のいずれか。
"text=<text>"正確には要素のテキスト。
"parttext=<partial_text>"-". 指定された部分テキストをテキストに含む要素を検索します。上記のパラメータに加えて、コマンドは任意のUI階層ツリーの属性とその値を受け付けます。このような検索は、iOSまたはAndroidに固有のものとなります。例えば、現在Androidにフォーカスしているものを特定するにはfocused=trueを使用します。
を返します:
actionパラメータなしで呼び出された場合、このコマンドは少なくとも 1 つの要素が見つかれば 0 を返し、見つからなければ 1 を返します。特定された要素の数は _MOBILE_FIND_COUNT 変数に格納され、個々の要素の属性は
MOBILEFIND_ 接頭辞を持つ番号付き変数として公開されます。
actionパラメータが存在し、アクションが要素に正常に適用されると、コマンドは0を返す:
continueが 指定されていないかfalseの 場合、コマンドはエラーを投げてスクリプトを終了します。
continueがtrueの場合、スクリプトの実行は続行され、コマンドは 1 (要素が見つからなかった) または 2 (番号で指定した要素と一致する要素が見つからなかった) を返します。
Mobile install [file=<アプリファイル>][reinstall=<true|false>]。
*赤色は必須パラメータ
- 指定されたローカルファイルからアプリケーションをデバイスにインストールします。成功すると、コマンドは _MOBILE_INSTALLED_ID 変数にアプリケーションIDを格納し、これを使用してアプリケーションを起動、終了、アンインストールします。
OPTIONS
file=<アプリファイル>
- Androidアプリケーション・ファイル(.apk)へのパス。
reinstall=<true|false>
- trueを指定すると、アプリがすでにデバイスに存在する場合、強制的に再インストールされます。
を返します:
コマンドは、正常に完了した場合は 0 を返し、そうでない場合はエラーをスローしてスクリプトを終了します。
Mobile keyboard action=get
- 変数 _MOBILE_KEYBOARD_VISIBLE にtrue/falseを代入し、ソフトキーボードが表示されているかどうかを示します。このコマンドは0を返すか、キーボードのステータスの決定に失敗した場合(サポートされていないOS、...)スクリプトを終了する。
Mobile keyboard action=show
-Androidのみ:デバイスにソフトキーボードを表示しようと試み、その結果を終了コードで示す。この機能は、編集可能なUIコンポーネントが現在フォーカスされているかなどの条件に左右されるため、失敗することが多いことに注意してください。結果のリターンコードを必ずテストしてください。コマンドは、キーボードのステータスを決定するのに失敗した場合(サポートされていないOS、...)、エラーを投げてスクリプトを終了することがあります。
Mobile keyboard action=dismiss [keys=%26lt;semicolon_separated_list%26gt;]を指定する。
- デバイス上に現在表示されているソフトキーボードの終了を試み、その結果を終了コードで示す。keysパラメータはiOSでのみ必要で、Androidでは不要で無視されることに注意してください。このコマンドは、キーボードの状態を判断できない場合(サポートされていないOSなど)、エラーを投げてスクリプトを終了することがあります。
Mobile keyboard action=load [file=%26lt;map_file%26gt;]。
-iOSのみ:保存されているキーボードマップを 読み込みます 。ファイルが利用できないか、形式が正しくない場合、コマンドはエラーを投げてスクリプトを終了します。
Mobile keyboard action=remap
-iOSのみ:現在表示されているソフトキーボードを即座にリマップします。ソフトキーボードが表示されていないか、予期しないエラーが発生した場合、コマンドはエラーをスローし、スクリプトを終了します。
*赤色は必須パラメータです。
オプション
action=<get|show|dismiss|load|remap>
- アクション名。"get"、"show"、"dismiss"、"load"、"remap "のいずれか。
file=<マップファイル>
- キーボードマップファイル (.keymap) へのパス。
keys=<セミコロンで区切られたキー>
- キーボードを閉じるためにタップするセミコロンで区切られたキー名のリスト。このパラメータはiOSでのみ必要で、Androidでは無視されます。
を返します:
返される終了コードとエラースローについては、各アクションの説明を参照してください。
Mobile kill [id=<application_id>] [force=<true|false>] [timeout=<time_interval>] [log=<true|false>]
-指定したアプリケーションを終了させるか、最終的にバックグラウンドに送る。
オプション
id=<アプリケーションID>
- アプリケーションID。iOSの場合はアプリケーションバンドル名で、例えばSafariブラウザの場合は"com.apple.mobilesafari "と なります。Androidでは、Chromeアプリの"com.android.chrome "の ようにアプリケーションパッケージのみ("kill "アクションと "uninstall " アクション)、または "com.android.chrome/com.google.android.apps.chrome.Main "のようにパッケージの後にスラッシュとアクティビティ("start " アクション)が続く。 アプリケーションIDが指定されていない場合、コマンドは、"Mobile install"(Androidのみ)の呼び出しによって最近インストールされたアプリケーション、または"Mobile app "の 呼び出しによって提供されたアプリケーションを強制終了します。 MOBILE_ACTIVE_ID変数).現在表示されているアプリを終了するには、"Mobile app "コマンドと"Mobile kill "コマンドを連続して使用します。アプリケーションIDが解決できない場合、コマンドはエラーを投げてスクリプトを終了します。
force=<true|false>
- trueを指定すると、コマンドはアプリを強制終了させようとします。内部実装はターゲットOSに依存するため、このフラグが無視されることもあります。デフォルト値はtrueです。
timeout=<時間値>
- シェルコマンドが終了するまでの待機時間(オプション)。有効なtime_values.シェルコマンドによってアプリが強制終了されるAndroidでのみ使用されます。iOSでは無視されます。
log=<true|false>
- trueを指定すると、デバッグのために操作の出力を実行ログに記録します。デフォルト値はfalseです。
を返します:
コマンドは 0 を返します。
Mobile orientation action=get
- MOBILE_SCREEN_ORIENTATION_NAME 変数と _MOBILE_SCREEN_ORIENTATION 変数に、現在の画面の向きの名前とコードを代入する。名前は「Portrait」(コード0)、「LandscapeLeft」(1)、「UpsideDown」(2)、「LandscapeRight」(3)。
Mobile orientation action=set [set=<オリエンテーション>]
* 赤は必須パラメータ
- 画面の向きを設定し、"get "アクションと同じ変数を入力する。
オプション
action=<get|set>
- アクション名。"get "または"set "のいずれか。
set=<オリエンテーション>
- 名前または数値コードで特定されるターゲット方向。使用可能な値は、"Portrait"(コード0)、"LandscapeLeft"(1)、"UpsideDown"(2)、および"LandscapeRight"(3)です。Androidは、画面の向きをジャイロスコープが示す向きにリセットする「Auto」(コード4)もサポートしています。
戻り値:
コマンドは 0 を返す。
Mobile pull [remote=<リモートファイル>] [local=<ローカルファイル>]
*赤色は必須パラメータ
-Androidのみ:デバイスからローカルファイルシステムにファイルをプル(ダウンロード)します。
オプション
remote=<リモートファイル>
- デバイス上のファイル。
local=<ローカルファイル>
- ローカルファイルシステム内のファイル。
を返す:
コマンドは成功すると0を返し、失敗するとエラーを投げてスクリプトを終了します。
Mobile push [local=<local_file>] [remote=<remote_file>]
*赤色は必須パラメータ
-Androidのみ:デバイスにファイルをプッシュ(アップロード)します。
オプション
local=<ローカルファイル>
- ローカルファイルシステム内のファイル。
remote=<リモートファイル>
- デバイス上のファイル。
を返します:
コマンドは成功すると0を返し、失敗するとエラーを投げてスクリプトを終了します。
Mobile shell [command=<command>] [remote=<remote_file>] [timeout=<time_interval>] [log=<true|false>]
*赤色は必須パラメータ
-Androidのみ:デバイス上でシェルコマンドを実行する。コマンド出力は_MOBILE_OUTPUT変数に格納される。
オプション
command=<コマンド>
- 実行するシェルコマンド。
timeout=<時間値>
- シェルコマンドが終了するまでの待機時間(オプション)。有効な time_values.
log=<true|false>
- trueを指定すると、デバッグのために操作の出力を実行ログに記録します。デフォルト値はfalse です。
を返します:
コマンドは成功すると0を返し、失敗するとエラーを投げてスクリプトを終了します。
Mobile start [id=<application_id>] [timeout=<time_interval>] [log=<true|false>]
- デバイス上でアプリケーションを起動する。タイムアウトが指定されない限り、アプリの起動コマンドはキックオフされますが、アプリが正しく表示されるかどうかを確認する努力は行われません。コマンドは終了コードによって、起動処理が正しく実行されたかどうかを示し MOBILE_OUTPUT変数にエラー出力を入力します。アプリが起動して画面に表示されたことを確認するには、タイムアウトパラメーターを使用します。
OPTIONS
id=<アプリケーションID>
- アプリケーションID。iOSの場合はアプリケーションバンドル名で、例えばSafariブラウザの場合は"com.apple.mobilesafari "と なります。Androidの場合は、パッケージの後にスラッシュとアクティビティが続く必要があります。AndroidでアプリケーションIDが指定されていない場合、コマンドは「Mobile install」の呼び出しによって最近インストールされたアプリケーションを起動します(IDは IDは_MOBILE_INSTALLED_ID変数から取得されます)。アプリケーションIDが解決できない場合、コマンドはエラーを投げてスクリプトを終了します。
timeout=<時間値>
- シェルコマンドが終了するまでの待機時間(オプション)。有効な time_values.
log=<true|false>
- trueを指定すると、デバッグのために操作の出力を実行ログに記録します。デフォルト値はfalseです。
を返します:
タイムアウトパラメータが指定されていない場合、または 0 に設定されている場合、コマンドはアプリケー ションをキックオフして 0 を返します。
タイムアウトが 設定されると、コマンドは、指定された時間内にアクティブなアプリと引数のidをテストすることで、アプリが起動し、画面に表示されていることを確認します。アプリが表示されない場合は、エラーがスローされ、スクリプトが終了します。
Mobile uninstall [id=<application_id>]
-Androidのみ:デバイスからアプリケーションをアンインストールします。操作に失敗した場合、_MOBILE_OUTPUT 変数にその理由が入力されます。
オプション
id=<アプリケーションID>
- アプリケーションID。Chromeアプリの場合は "com.android.chrome " の ようにAndroidアプリのパッケージのみ、または "com.android.chrome/com.google.android.apps.chrome.Main "のようにパッケージの後にスラッシュとアクティビティ("start "アクション)が続く。アプリケーションIDが指定されていない場合、コマンドは「Mobile install」の 呼び出しによって最近インストールされたアプリケーションをアンインストールします(IDは 変数 _MOBILE_INSTALLED_ID から取得されます。).現在表示されているアプリをアンインストールするには、「Mobile app」と「Mobile uninstall id="{_MOBILE_ACTIVE_ID}"」の一連のコマンドを使用します。アプリケーション ID が解決できない場合、コマンドはエラーを投げてスクリプトを終了します。
を返します:
このコマンドは、成功すると 0 を返し、失敗すると 1 を返します。アプリ ID を解決できない場合、または予期しない I/O エラーが発生した場合は、エラーをスローしてスクリプトを終了します。