appium+python-元素定位总结

方法 对应属性 备注
driver.find_element_by_id(‘aaa’) resource-id
driver.find_element_by_accessibility_id(‘aaa’) content-desc
driver.find_element_by_xpath(‘aaa’) xpath
driver.find_element_by_name(‘aaa’) text appium1.5开始,不支持name定位。
1)driver.find_element_by_class_name(‘aaa’)
2)driver.find_elements_by_class_name(‘aaa’)[n]— n为列表下标。
class class属性一般不唯一,元素不唯一时,用1)定位会报错,此时可以用2)。
driver.find_element_by_link_text(‘aaa’) link_text
driver.find_element_by_partial_link_text(‘aaa’) partial_link_text
driver.find_element_by_css_selector(‘aaa’) css_selector
driver.find_element_by_tag_name(‘aaa’) tag_name
driver.find_element_by_ios_uiautomation(‘aaa’) ios_uiautomation
driver.find_element_by_ios_predicate(‘aaa’) ios_predicate
driver.find_element_by_ios_class_chain(‘aaa’) ios_class_chain
driver.tap(self, positions, duration=None) bounds positions: list类型,里面对象是元组,最多五个。如:[(100, 20), (100, 60)]。–duration: 持续时间,单位毫秒,建议设置500-1000。 eg: driver.tap([(100, 20), (100, 60), (100, 100)], 500) 。当其他方法都定位不到时,再使用该方法。而且坐标不能写死,因为手机有不同的分辨率,需要计算相对比例。
driver.find_element_by_android_uiautomator(‘aaa’) 元素定位 android_uiautomator 详情请看下表
元素定位 方法 备注
单元素-text定位 精确匹配
driver.find_element_by_android_uiautomator(‘new UiSelector().text(‘aaa’)’)
模糊匹配
driver.find_element_by_android_uiautomator(‘new UiSelector().textContains(‘aaa’)’)
开头匹配
driver.find_element_by_android_uiautomator(‘new UiSelector().textStartWith(‘aaa’)’)
正则匹配
driver.find_element_by_android_uiautomator(‘new UiSelector().textMatches(‘aaa’)’)
单元素-resource-id定位 driver.find_element_by_android_uiautomator(‘new UiSelector().resourceId(‘aaa’)’)
单元素-class定位 driver.find_elements_by_android_uiautomator(‘new UiSelector().className(‘aaa’)’)[n]
单元素-content-desc定位 driver.find_element_by_android_uiautomator(‘new UiSelector().description(‘aaa’)’)
多元素- 组合定位 driver.find_element_by_android_uiautomator(‘resoureceId(‘aaa’).text(‘bbb’)’) 一般使用id,class,text两两组合;其次使用description 。
多元素- 父子定位 find_element_by_android_uiautomator(‘resourceId(‘aaa’).childSelector(text(‘bbb’))’) 通过父元素找到子元素。
多元素- 兄弟定位 fromParentdriver.find_element_by_android_uiautomator(‘resourceId(‘aaa’).fromParent(text(‘bbb’))’) 通过相邻元素定位。

你可能感兴趣的:(appium)