方法 | 对应属性 | 备注 |
---|---|---|
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’))’) | 通过相邻元素定位。 |