as

Settings
Sign out
Notifications
Alexa
Amazonアプリストア
AWS
ドキュメント
Support
Contact Us
My Cases
開発
設計と開発
公開
リファレンス
サポート

Appium Vegaドライバーのロケーター戦略

Appium Vegaドライバーのロケーター戦略

ロケーター戦略とは、テストの自動化中にアプリ内のユーザーインターフェイス(UI)要素を検索して特定するために使用される方法です。これらの戦略は、ボタン、テキストフィールド、その他のUIコンポーネントなど、画面上の特定の要素を見つける方法をAppiumに指示する検索パターンとして機能します。

サポートされている戦略

Appium Vegaドライバーでは、UiSelectorとXMLパス言語(XPath)がサポートされています。その他のセレクター戦略は、このリリースではサポートされていません。

UiSelector

ネイティブの自動化フレームワークを利用してUI要素を特定する、プラットフォーム固有のロケーター戦略。プロパティと階層関係に基づいて、要素の選択を正確に制御できます。

使用例:

使用例を表示するには、タブを選択してください。


element = driver.find_element("UiSelector", '{"args": {"text": "要素のテキスト"}}')

element = driver.findElement(AppiumBy.ByAndroidUIAutomator.androidUIAutomator("{\"args\": {\"role\":\"edit\"} }")`\

XPath

XMLのような構造内の要素のナビゲーションと選択を可能にするクエリ言語。

使用例:

使用例を表示するには、タブを選択してください。


element = driver.find_element(by="xpath", value="//[contains(@description, \"ミュージック\")]"

element = driver.findElement(AppiumBy.xpath("//[contains(@description, \"ミュージック\")]"));

const element = await driver.$('//[contains(@description, \"ミュージック\")]');

element = @driver.wait { |d| d.find_element :xpath, '//[contains(@description, \"ミュージック\")]' }

主な構成要素

  1. 軸 - 子孫、祖先、後続など、検索の方向を指定します。

     // 子孫軸
     "//button"  // 子孫であるすべてのbutton
     "/button"   // 直下の子であるbutton
    
  2. ノードテスト - 要素、属性、text()など、選択するノードタイプを指定します。

     "//*"           // 任意の要素
     "//button"      // button要素
     "//text()"      // テキストノード
    
  3. 述部 - 属性値、位置、カスタム関数などのさまざまな条件に基づいて、選択されたノードをフィルタリングします。

     "//button[@text='ログイン']"              // 完全一致
     "//button[contains(@text, 'ログイン')]"   // 部分一致
    

特殊なユースケース

// ルート要素
driver.findElement(By.xpath("/root"));

// 説明による要素の選択
driver.findElement(By.xpath("//*[contains(@description, 'ミュージック')]"));

// 複雑な階層の選択
driver.findElement(By.xpath("//parent/*[2]//child[@visible='true']"));

セレクター戦略の比較

機能 UiSelector XPath
対応プラットフォーム プラットフォーム固有 クロスプラットフォーム
パフォーマンス 一般に高速 場合により低速
信頼性 信頼性が高い UIの変更により機能しなくなることがある
複雑さ 場合により複雑
メンテナンス プラットフォーム固有のテストが容易 クロスプラットフォームテスト向き
デバッグのサポート ネイティブツールを利用可能 標準のXMLツール
メモリ使用量 少ない 複雑なクエリの場合は多い

ベストプラクティス

  1. 適切な戦略の選択

    • プラットフォーム固有のテストにはUiSelectorを使用します。
    • クロスプラットフォームの互換性が求められる場合はXPathを使用します。
    • パフォーマンスが重要な場合はUiSelectorを選択します。
  2. 要素の特定

    • 可能な場合は一意の識別子を使用します。
    • 絶対パスを使用しないようにします。
    • セレクターはできるだけシンプルにします。
    • セレクターの信頼性を定期的に検証します。
  3. パフォーマンスに関する考慮事項

    • 複雑なXPathクエリはテストの実行時間に影響する可能性があります。
    • 頻繁に使用する要素をキャッシュします。
    • 可能な場合はアプリ固有のIDを使用します。
  4. メンテナンスに関するヒント

    • ロケーター戦略を文書化します。
    • ロケーターを定期的に確認します。
    • UIの変更に合わせて更新を行います。
    • クロスプラットフォームの互換性を保ちます。
    • テストコードで意味のわかる名前を使用します。

Last updated: 2025年9月30日