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的发布按钮并点击

image

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定位

淘宝为例:
image
点击管理:

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("女装")')

七,最不常用的坐标

因为不同版本或不同机型坐标不一致所以很少用.

posted @ 2021-07-06 15:57  看书  阅读(463)  评论(0编辑  收藏  举报