app测试定位方法
总结下来大概有5种:
1,通过id定位:resource-id,一般有id使用id.保证id是唯一的.
2,通过class_name:class
3,通过accessibility_id定位:content-desc
4,通过android_uiautomator定位:自带的框架UiAutomator2中的
5,通过xpath定位:xpath是最后没有办法时候使用,因为工具提供的很长,容易出问题.
一,通过id定位bilibili的发布按钮并点击
loc=(MobileBy.ID,"tv.danmaku.bili:id/publish_plus")
WebDriverWait(driver,30).until(EC.visibility_of_element_located(loc))
driver.find_element(*loc).click()
二,通过class定位搜索框
#class定位
loc=(MobileBy.CLASS_NAME,"android.widget.TextView")
WebDriverWait(driver,30).until(EC.visibility_of_element_located(loc))
driver.find_element(*loc).click()
三,通过accessibility_id定位
淘宝为例:
点击管理:
loc=(MobileBy.ACCESSIBILITY_ID,"管理")
WebDriverWait(driver,30).until(EC.visibility_of_element_located(loc))
driver.find_element(*loc).click()
四,根据android_uiautomator定位bilibili首页的发布按钮
参数为uiSelector类定位元素的表达式
appium1.15前写法:new Uiselect().resourceId()
1.15之后版本写法:resourceId()
loc=(MobileBy.ANDROID_UIAUTOMATOR,'resourceId("tv.danmaku.bili:id/publish_plus")')
五,通过xpath定位
点击淘宝购物车:用的定位工具给的xpath,待改进
loc=(MobileBy.XPATH,"//android.widget.FrameLayout[@content-desc=\"购物车\"]/android.widget.ImageView")
WebDriverWait(driver,30).until(EC.visibility_of_element_located(loc))
driver.find_element(*loc).click()
六,最多用的应该是组合定位
同级的图片或按钮的class一般都是一样的,根据组合定位比较好直接定位.
UiSelector类下的方法返回对象本身,因此可以连续调用各种方法实现组合定位
点击淘宝首页中的女装栏:
loc=(MobileBy.ANDROID_UIAUTOMATOR,'className("android.widget.TextView").text("女装")')
七,最不常用的坐标
因为不同版本或不同机型坐标不一致所以很少用.
难者不会 会者不难 学是关键