APP自动化测试定位元素位置

APP自动化测试定位元素位置,第1张

概述一,ID定位方法如下图所示,使用uiautomator2工具定位7的位置,只需要获取此位置的resource_id信息即可如果有resource-id属性就取resource-id值,有id属性就取id值,有name属性就取name值但是在取resource-id、id、name值时这些值一定要唯一,可以唯一定位到该元素才行,如果值是一个 一,ID定位方法如下图所示,使用uiautomator2 工具定位7的位置,只需要获取此位置的resource_ID 信息即可

如果有resource-ID属性就取resource-ID值,有ID属性就取ID值,有name属性就取name值但是在取resource-ID、ID、name值时这些值一定要唯一,可以唯一定位到该元素才行,如果值是一个通用值,那么无法区别出元素仍然无法定位,这时就要换其他定位方法如下图所示,资产总览和转账汇款的resource-ID,class的值都是一样的,就需要结合其他方法定位

二,class、text定位(取class、text)class是一个类属性,一般重复性会很高,所以很少直接使用,这里讲class属性是由于在xpath中会频繁用到class属性text属性是文本,如果是要定位到唯一的标题之类的可以直接使用text属性三,xpath定位

通过上面两种方法可知,如果有ID属性当然就直接使用ID值,但如果没有就干脆使用xpath,理论上xpath可以定位到所有元素

xpath的写法是根据层级的class属性一级一级定位到元素

绝对路径:
元素的全路径,包含了全部节点。这种方法首先一看就觉得太长写起来好累,如果层级再多那写起来简直无休无止了;另一方面由于涉及到太多层,一旦中间任何一层有变动,那元素就定位不到了
如下图所示,想要定位按钮7的位置信息,需要从最外层的目录获取到class名称,然后逐级递进,获取每一级的class名称,直到末级目录


以上目录的xpath信息为:"//androID.Widget.FrameLayout/androID.Widget.relativeLayout/androID.vIEw.VIEwGroup/androID.Widget.linearLayout[1]/androID.vIEw.VIEwGroup/androID.Widget.button[4]"

相对路径:

如果当前class内存在唯一text可以定位元素,直接用当前class+text,例如://androID.Widget.button[@text=‘7’]

如果当前class内存在唯一content-desc可以定位元素,直接用当前class+content-desc,例如://androID.Widget.TextVIEw[@content-desc=‘巡场排查’]

如果当前class内,resource-ID、text、content-desc三者取其二或者取其三能唯一定位元素,直接用当前class+两者/三者并列,例如://androID.Widget.TextVIEw[@resource-ID=‘com.space.grID.deBUG:ID/text’ and @text=‘数据采集’]

如果当前class内,text、content-desc中的文本内容不是完全符合,但能匹配部分内容,可用当前class+模糊定位contains,例如://androID.Widget.TextVIEw[contains(@text,‘重点管控’)]

如果在当前class内无法通过以上4种办法定位元素,则向上寻找元素的父节点或者祖父节点通过以上4种办法定位,总之是找到能唯一定位且离元素最近的一个上层节点,例如://androID.Widget.relativeLayout[@resource-ID=‘com.space.grID.deBUG:ID/address’]/androID.Widget.ImageVIEw[2]

ps:这里特别要强调的一点是androID.Widget.ImageVIEw的index=1,但为什么写法却是androID.Widget.ImageVIEw[2]下标为2,因为xpath的下标是从1开始的,没有0

四,坐标点定位如果上面说的几种办法都无法定位,那只能采用终极办法,通过像素的坐标位置来定位元素了,比方我有个表单的选项是浮层,但工具没办法获取到浮层中每个项,这个时候只能通过关键字Click A Point [ x | y]来定位元素

PS:但有一点要注意的是,由于不同手机的分辨率不同,坐标位置也是会有一定的差异,同一个脚本在不同手机上运行可能会有不同的结果

总结

以上是内存溢出为你收集整理的APP自动化测试定位元素位置全部内容,希望文章能够帮你解决APP自动化测试定位元素位置所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1043076.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存