Reading Time: 4 minutes
前回のブログで、ローカル システムに Appium をインストールする方法を確認しました。 そこで、このブログでは、Appium inspector を使用して、さまざまな種類の要素を見つける方法を紹介します。
Why Appium Inspector?
モバイルアプリケーションとWebアプリケーションのテストは、互いに異なります。 主な違いは、アプリケーションの要素を識別するために使用するロケーター戦略です。 Web アプリケーションの要素を見つけるには、Web ブラウザの要素インスペクタを使用できます。 しかし、モバイルアプリケーションの場合、エレメントインスペクタを利用することはできません。 このため、アプリケーションの要素を見つけるために、Appiumのインスペクタを使用することができます。
Appium Inspector
Appium inspectorはAppiumの内蔵機能で、モバイルとWebアプリケーションの異なるタイプの要素を識別します。 モバイルやウェブ上のアプリケーションを自動化しようとするとき、アプリケーションのすべての要素を一意に識別できるようにする必要があることは、誰もが知っているとおりです。
Appium Inspector は、エミュレーターと実世界のデバイスも使用します。 それは単にデバイスの画面をミラーリングし、私たちはそれを操作して、要素の詳細を取得することができます。 モバイルアプリケーションで要素を一意に識別する方法はさまざまです。

Element locator strategy in Appium
Element locator を使用すると、アプリケーション内の UI 要素のアドレスを見つけることができます。 同じ種類の複数の要素が画面上に存在することは非常に一般的なので、2 つ以上の要素が同じアドレスを持っている可能性があります。
ID
ID による要素の検索は、すべての中で最も単純な方法です。 すべての要素は、それを識別し、またそれと対話するために使用することができるそれに接続された ID を持っています。 Android ではリソース ID を使用し、iOS では名前またはラベルを使用します。
dr.findElement(By.id("android:id/text1")).click();

Accessibility ID
iOS と Android アプリケーションで作業している場合、これは最高の要素ロケーターと見なされます。 アクセシビリティ ID はクロスプラットフォームであり、Android と iOS の両方のアプリケーションで同様に使用またはアクセスできます。 これにより、コードが再利用可能になります。
dr.findElementByAccessibilityId("Accessibility").click();

Class name
クラス名を使用して要素を見つけることは、あまり信頼性が高くありません。 多くの要素が同じクラス名を持つことができ、それらは要素のクラス名属性を使用するだけでは特定できません。 そこで、テキストとクラス名を一緒に組み合わせるなど、複数の属性を組み合わせて要素を見つけることができます。
List<WebElement> buttons = driver.findElementsByClassName("android.widget.TextView");for(WebElement button : buttons){ System.out.println(button.getText()); if(button.getText().equals("Animation")){ button.click(); }}

xpath
このロケーター戦略は、アプリケーションの XML 構造で動作します。 これは、ページ上の他の要素の位置の助けを借りて、要素を識別します。 Web ページ上で要素の位置が変わると、要素の xpath も変わるため、最も信頼性の低い要素ロケータの 1 つです。
dr.findElementByXPath("//android.widget.TextView").click();

Launching Appium Inspector
Appium inspector を起動する方法を最初に見ておきましょう。 Appium inspector を使用するには、Appium をインストールする必要があります。
- Appium を起動してサーバーを起動します。


- 目的の機能を定義して、新しい Appium セッションを開始します。


- Appium inspector インターフェイスが開き、ウィンドウで開いたアプリケーションを確認できます。
Appium を使用して要素を検索する小さな紹介記事でした。 次回のブログでは、Appiumで要素を見つけるさまざまなテクニックを紹介します。
