Appium常用定位方法
基于上一篇内容:Appium元素定位方式,介绍了通过appium怎样查看app具体元素的属性,本篇内容详细介绍Appium常用定位方法。
Appium的webdriver提供了11种元素定位方法,在selenium的基础上扩展了三个,本文以python语言为示例介绍appium中的元素定位方法,可以在IDEA里面输入driver.find_element_by自动匹配出来。
1、通过ID定位:
使用方法为:driver.find_element_by_id('com.tencent.mobileqq:id/dialogRightBtn').click()
2、通过AccessibilityId定位:
AccessibilityId也称为content-desc,使用方法为:driver.find_element_by_accessibility_id('去授权按钮').click()
3、通过xpath定位:
使用方法为:driver.find_element_by_xpath('//android.widget.TextView[@content-desc="去授权按钮"]').click()
4、通过className定位:
这里的className对应的元素有2个,看上面的index是1,拒绝是0,去授权是1,使用方法为:driver.find_element_by_class_name('android.widget.TextView')[1].click()
5、通过Android UIAutomator定位:
android uiautomator原理是通过android 自带的android uiautomator的类库去查找元素,其实和appium的定位一样,或者说他比appium的定位方式更多以及更适用,它也支持id、className、text、模糊匹配等进行定位。
1)通过text定位:
根据text属性为“去授权”查找元素,使用方法为:driver.find_element_by_android_uiautomator('new UiSelector().text("去授权")').click()
2)text模糊定位:
模糊定位故名思义,通过text的部分信息就能够进行定位,使用方法为:driver.find_element_by_android_uiautomator('new UiSelector().textContains("去授")').click()
3)textStartsWith定位:
使用方法为:driver.find_element_by_android_uiautomator('new UiSelector().textStartsWith("去授")').click()
4)resourceID定位:
resourceId定位和appium封装好的id定位是一样的,只是这里将写法变成了uiautomator的写法而已。
使用方法为:driver.find_element_by_android_uiautomator('new UiSelector().resourceId('com.tencent.mobileqq:id/dialogRightBtn')').click()
5)className定位:
通过调用android uiautomator使用className进行定位,使用方法:driver.find_element_by_android_uiautomator('new UiSelector().className('android.widget.TextView')').click()
6、appium和selenium元素定位对比