find_element
find_elementコマンドは、指定されたセレクター戦略に一致する最初のUI要素を特定します。
By.xpath()ロケーター戦略を使用してXPathを利用できます。
引数
一般的なXPath式のコンポーネント
XPath式は次の部分から構成されます。
- 軸 - 子孫、祖先、以降に続くノードなどの検索の方向を指定します。
- ノードテスト - 要素、属性、text()など、選択するノードタイプを指定します。
- 述部 - 属性値、位置、カスタム関数などのさまざまな条件に基づいて、選択されたノードをフィルタリングします。
XPath式の例を次に示します。
find_elements
find_elementsコマンドは、複数のUI要素を特定します。さまざまなロケーター戦略をサポートし、要素の配列を返します(配列は空になる場合もあります)。このコマンドは以下の目的で使用します。
- リスト全体に対する反復処理
- 複数のコントロールの検証
XPathなどの高度な手法を使用します。
引数
find_elementとfind_elementsの比較
親要素のコンテキスト内で子要素を見つけるには、子要素を含む囲み要素を探します。
click
clickコマンドは、特定の要素の中心点をクリックする操作をシミュレートします。さまざまなロケーター戦略が用意されていますが、要素をIDによってクリックすることで、確実で保守しやすいアプローチになります。
引数
clickコマンドは先に特定済みの要素に対して動作するため、引数は必要ありません。
既知の制限事項
デバイスが実際のテレビやモニターではなくビデオキャプチャカードに接続されている場合、click()コマンドが失敗することがあります。自動化ツールキットとディスプレイコンポジターの間で行われる座標変換が原因で、タッチイベントが誤った座標で発生することがあるためです。
回避策:
element.click()の代わりに、D-padナビゲーション(setFocusとDPAD_CENTERのpressKeyCode)を使用してください。
send_keys
send_keysコマンドは、文字列引数を受け取り、要素へのテキスト入力をシミュレートします。
引数
ベストプラクティス
- ターゲット要素にフォーカスがあり、入力を受け取る準備ができていることを確認する。
- キーを送信する前に要素のフォーカスを確認する。キーを送信する前に、
click()などのコマンドを使用して要素を選択する。 - 一部のデバイスやアプリでは高速または同時の入力によって問題が発生する可能性があるため、キー送信の間に短い遅延を追加する。
get_attribute
get_attributeコマンドは、UI要素から指定した属性の値を取得します。
引数
属性の一覧
get_element_text
get_element_textコマンドは、UI要素に表示されているテキストコンテンツを取得します。非表示のテキストを除き、ユーザーに表示されているテキストを返します。
引数
get_element_textコマンドは先に特定済みの要素に対して動作するため、引数は必要ありません。ベストプラクティス
- テキストの取得を試みる前に、要素が存在することを確認してください。
- 空のテキストが返される可能性を適切に処理してください。
- アサーションではテキストの書式や特殊文字を考慮してください。
- 必要に応じて適切な待機戦略と共に使用してください。
press_keycode
press_keycodeコマンドは、デバイスで特定のハードウェアキーを押す操作をシミュレートします。アプリの状態やテストフローに影響する可能性があるため、注意して使用してください。数字のキーコードのみを受け入れます(16進コードには対応していません)。
引数
tap
tapコマンドは、画面上の特定の座標セットをタップする操作をシミュレートします。このコマンドはタッチ操作を正確に制御できますが、注意が必要です。
引数
ベストプラクティス
tapではきめ細かい制御が可能ですが、テストの安定性と保守性を保つためには、要素ベースの対話操作を優先することをお勧めします。要素ベースの方法が実用的でない場合にのみ使用してください。
is_enabled
is_enabledコマンドは、UI要素の現在の状態を確認します。有効(対話可能)の場合はtrue、無効(対話不可能)の場合はfalseを返します。
is_enabledとほかのコマンド(is_displayedなど)を組み合わせて使用してください。
引数
is_enabledコマンドは先に特定済みの要素に対して動作するため、引数を受け取りません。
ベストプラクティス
is_enabledは、要素に対するさまざまな状態チェックの一部として使用してください。- 要素の対話操作性の判断を
is_enabledに頼らないでください。 - 要素の状態を確認する前に待機戦略を実装してください。
is_displayed
is_displayedコマンドは、UI要素が画面に表示されているかどうかを確認します。表示されている場合はtrueを返し、非表示の場合はfalseを返します。
引数
is_displayedコマンドは先に特定済みの要素に対して動作するため、引数を受け取りません。ベストプラクティス
is_displayedは、要素に対するさまざまな状態チェックの一部として使用してください。
implicitly_wait
implicitly_waitコマンドは、使用できない要素を検索するときにドライバーが待機する時間を設定します。このコマンドはテストの安定性を高めますが、注意して使用してください。複雑なシナリオでは、implicitly_waitとexplicit waitsを組み合わせて、信頼性と実行速度のバランスを取ってください。
引数
ベストプラクティス
implicitly_waitはテストの開始時に設定します。- 必要に応じて、適切なデフォルト(たとえば、0ms)にリセットします。
get_window_rect
get_window_rectコマンドは、画面全体のサイズを基準として、現在のアプリウィンドウのサイズと位置を取得します。
例:
Python
x- ウィンドウの左の座標y- ウィンドウの上の座標width- ウィンドウの幅height- ウィンドウの高さ
引数
引数は必要ありません。ベストプラクティス
さまざまな画面サイズとレイアウトを処理する堅牢なテストスクリプトを作成するには、get_window_rectをほかのコマンドと組み合わせて使用します。
get_page_source
get_page_sourceコマンドは、アプリの現在のページソースを取得します。ページソースは、基盤となるUI構造を表します。
Python
引数
get_page_sourceコマンドには引数は必要ありません。
get_screenshot
get_screenshotコマンドは、現在のアプリの状態をbase64エンコードされた文字列としてキャプチャします。このコマンドを使用するときは、ユーザーのプライバシーに配慮してください。デジタル著作権管理(DRM)コンテンツをキャプチャしないでください。
Python
引数
このコマンドには引数は必要ありません。install_app
install_appコマンドは、デバイスにアプリをインストールする際に使用します。VPKGファイルパスは、ホスト(Appiumサーバー)のファイルシステム上で使用できる必要があります。テストの開始時にこのコマンドを使用して、環境セットアップを自動化します。
例:
Python:
引数
activate_app
activate_appコマンドは、指定されたアプリをデバイス上で起動するかフォアグラウンドに移動します。このコマンドは、アプリの切り替えのシナリオをテストしたり、ほかのテストアクションを実行する前に特定のアプリがアクティブであることを確認したりするために役立ちます。
例:
Python:
引数
ベストプラクティス
アプリを起動するための正しいappIdを取得するには、vpm list applicationsを実行します。
terminate_app
terminate_appコマンドは、現在実行中のアプリを停止します。このコマンドは、強制終了時のアプリの動作をテストする場合や、テストケース間でクリーンな状態を保証する場合に使用します。
例:
引数
remove_app
remove_appコマンドは、デバイスからアプリをアンインストールする際に使用します。
例:
引数
execute_script
execute_scriptコマンドは、シェルコマンドを実行するか、jsonrpc APIを呼び出します。
デバイス上でシェルコマンドを実行するには
appium_driver.execute_script("shell", "echo hello world") #
Appiumパブリックインターフェイスで公開されていないjsonrpc APIを呼び出すには:
appium_driver.execute_script("jsonrpc: getScreenContext", "")
push_file
push_fileコマンドを使用すると、ファイルをデバイスに直接転送できます。ファイルのコンテンツをbase64でエンコードされた文字列として提供する必要があります。これは、テストデータ、構成ファイル、そのほかテストの実行中に必要なファイルをアップロードするユースケースに役立ちます。
Python:
引数
pull_file
push_fileコマンドを使用すると、デバイスからファイルを直接転送できます。このコマンドは、ファイルのコンテンツをbase64でエンコードされた文字列として返します。これは、テスト結果、構成ファイル、そのほかテストの実行中や実行後に必要なファイルをダウンロードするユースケースに役立ちます。
Python:
引数
D-Padナビゲーション
execute_script関数では、jsonrpc: injectInputKeyEvent methodを通じてLinuxの入力イベントコードが送信されます。この機能により、アプリはユーザー入力イベントをプログラムでシミュレートして自動化とテストができます。
この関数は指定されたコマンドとキーイベントをスクリプト内で実行し、方向パッド入力用に設計されたアプリでのD-Padナビゲーションを可能にします。
次の表は、入力イベントコードの一覧です。Python:
定義されているキーコードの包括的な一覧については、入力イベントコード(英語のみ)を参照してください。入力イベントコードのリファレンスは、アクセスしやすく使いやすいキーボードエクスペリエンスを作成するために役立ちます。特定のキーコードのサポートは、デバイスタイプと入力構成によって異なります。非標準のキーボードレイアウトや動作について、キーボード入力処理をテストしてください。
injectInputKeyEventを実行するには、次のコマンドを使用します。

