AppiumAndroidの自動要素測位を行う方法

一緒に書く習慣をつけましょう!「ナゲッツデイリーニュープラン・4月アップデートチャレンジ」に参加して2日目です。クリックしてイベントの詳細をご覧ください

アプリページで実行する操作に関係なく、最初に操作する要素を見つける必要があります。たとえば、ボタンを直接クリックする場合は、最初にボタンを見つける必要があります。入力ボックスに何かを入力する場合は、最初に入力ボックスを見つける必要があります。

操作する必要のある要素を見つけるこのプロセスは、要素の配置と呼ばれます。

エレメントポジショニング機能

ほとんどのAPP操作プロセスでは、最初に操作する必要のある要素を見つける必要があります。このプロセスは要素の配置と呼ばれます。

Appiumでの要素の配置のための関数は、find_elementと呼ばれ、2つのパラメーターを渡します。最初のパラメーターは要素を見つける方法であり、2番目のパラメーターはこの方法の値です。たとえば、IDで要素を検索するには、最初のパラメーターにidを入力し、2番目のパラメーターにIDの値を入力します。

el = driver.find_element('id', 'value')
复制代码

取得したelは要素オブジェクトであり、要素の属性を取得するのは非常に簡単です。

el.text  #获取元素文本
el.rect  #获取元素坐标
el.get_attribute('clickable')  #获取元素clickable属性
复制代码

要素測位ツール:uiautomatorviewer

では、idの値はどこで取得できますか?SDKにはtoolsディレクトリがあります。このディレクトリにはuiautomatorviewerというツールがあり、もちろんid属性を含む各要素の属性を表示できます。対応するファイルを直接見つけてクリックすると、そのインターフェイスが表示されます。

要素のプロパティを表示するには、要素の上にマウスを移動するだけで、各要素のプロパティが右側に表示されます。uiautomatorviewerツールをクリックするたびに、もっと面倒になりますよね?ショートカットアクセスメソッドを作成してデスクトップに配置します。必要な場合は、デスクトップ上のこのショートカットをクリックして開きます。

https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/33103996fae54e9e9622ca251aad8baa~tplv-k3u1fbpfcp-zoom-1.image

要素の配置

アプリ自動化テストの主な要素を見つけるには、いくつかの方法があります。

  • MobileBy.XPATH
  • MobileBy.ID
  • MobileBy.ACCESSIBILITY_ID
  • MobileBy.ANDROID_UIAUTOMATOR
  • MobileBy.CLASS_NAME

idとxpathは、最も一般的に使用される2つの一般的な構文メソッドです。idを使用して検索してみてください。要素にid属性がない場合、またはidが一意でない場合は、xpath要素の配置方法を使用してください。

Xpathは、Webページとアプリページの両方で使用できる一般的なパスポジショニング言語です。さまざまな属性条件を組み合わせることで、ポジショニング式をより正確にすることができます。特定のXpathの使用法については、XPath要素のポジショニング方法を参照してください。

第二に、Android UiautomatorはJava言語での使用に適しており、他の言語の使用はあまり便利ではありません。必要に応じて、公式サイトでご利用いただけます。

ページのプロパティを確認し、コピーしたプロパティを関数に配置することで、要素を見つけることができます。たとえば、要素のIDが表示されるcom.keda.say:id/username場合、対応するコードは次のとおりです。

driver.find_element('id', 'com.keda.say:id/username')
复制代码

Xpath式として転記することもできます。

driver.find_element('xpath', '//*[@id="com.keda.say:id/username"]')
复制代码

要素属性を取得

find_elementメソッドは要素を見つけた後、要素オブジェクトを取得します。これを使用して、要素の属性を取得したり、属性のメソッドと操作イベントを呼び出したりできます。

  • element.location_in_view
  • element.location
  • element.rect
  • element.text
  • element.get_attribute('clickable')

要約する

状況に関係なく、UIオートメーションにfind_elementメソッドを使用している限り、要素の配置によって要素を取得し、後で要素に対して操作を実行できます。

私はJiushanです。患者さんに読んでいただきありがとうございます。またお会いしましょう。

おすすめ

転載: juejin.im/post/7081881256807366670
おすすめ