1.id定位
driver.find_element_by_id("这里是resource-id")
2.name定位 (新版本的appium 1.7 已经没有这个定位方法了)
driver.find_element_by_name("这里是text")
3.class定位
driver.find_element_by_class_name("class属性")
(注:一般一个页面上的class属性不唯一,元素不唯一的话定位会报错了)
4..accessibility_id定位
driver.find_element_by_accessibility_id(“content-desc的值”)
5.坐标定位
driver.tap([(374, 831), (654, 906)], 500) 500是点击时间 tap是模拟点击
6.Xpath定位
driver.find_element_by_xpath(“xpath”)
android_uiautomator定位方法
text文本定位: 定位元素文案为"Login"的按钮
dr.find_element_by_android_uiautomator('text("Login")').click()
dr.find_element_by_android_uiautomator("new UiSelector().text("Login")").click() #第2种写法
精确定位
模糊定位
dr.find_element_by_android_uiautomator('textContains("Log")').click()
dr.find_element_by_android_uiautomator("new UiSelector().textContains("Login")").click() #第2种写法
后记:
ios的 是 driver.find_element_by_ios_uiautomation()
后记:
这里 可以配合 做显示等待
https://www.cnblogs.com/kaibindirver/p/8401847.html
https://www.cnblogs.com/kaibindirver/p/10558311.html
resource-id定位
dr.find_element_by_android_uiautomator("new UiSelector().resourceid("resource-id")").click()
className定位
dr.find_element_by_android_uiautomator("new UiSelector().className("className")").click()
className复数定位 (感觉这个方法没啥用啊?)
loc_calss="new UiSelector().className("className")"
dr.find_element_by_android_uiautomator(loc_calss)[2].click()
组合定位
text+resourceid
dr.find_element_by_android_uiautomator('resourceid("resource-id").text("Login")').click()
这里的都可以用 password属性 如: new UiSelector().password("false")")在和上面一样组合或者单独用 ------- 我猜的
后记:
使用这个定位方法记得在头部加参数
desired_caps = { 'automationName': 'Uiautomator'}