前言
- appium同selenium一样可使用id、name、xpath等方式定位到元素。
id定位
- 说明:通过UI AutomatorViewer工具查看的resource-id属性
- 使用:driver.find_element_by_id("这里是resource-id")
name定位
- 说明:通过UI AutomatorViewer工具查看的text属性;appium1.5以下老的版本是可以通过name定位的,新版本从1.5以后都不支持name定位了
- 使用:driver.find_element_by_name("请输入手机号码")
class定位
- 说明:通过UI AutomatorViewer工具查看的class属性;class属性一般不唯一
- 使用:driver.find_element_by_class_name("android.widget.EditText)
accessibility_id定位
- 说明:通过UI AutomatorViewer工具查看的content-desc属性;替代以前的name定位方式,在 iOS 上,主要使用元素的label或name属性
- 使用:driver.find_element_by_accessibility_id(“content-desc的值”)
xpath定位
- 说明:xpath定位很强大,但是速度最慢,能用其他方式定位就尽量不使用xpath定位
- 使用:driver.find_element_by_xpath("//*[text()='请输入手机号码']")
ios_predicate定位
说明:iOS特有定位方式,速度快,可支持元素的单个属性和多个属性定位,
使用:driver.find_element_by_ios_predicate("type == 'XCUIElementTypeButton")
android_uiautomator定位
说明:android特有定位
格式:new UiSelector().定位方式,如:new UiSelector().resourceId("id")、new UiSelector().text("text文本")等
使用:driver.find_element_by_android_uiautomator("new UiSelector().resourceId('id值')"