UiAutomator 是否有方法判断两个无详细信息的控件确实是同一个呢?

scarletykuyh · 2019年10月25日 · 最后由 浮云 回复于 2019年10月31日 · 2346 次阅读

开源软件里经常有那种编写不是非常规范的控件…desc、text 都为空,只有一个 id,而且同一个页面中还有好几个有相同 id 的控件。
那么是否有方法判断我这一次点击的这种控件,和下一次点击的这种控件是不是同一个呢?

比如说因为没有详细信息,我在脚本里是通过 Xpath,比如 classname/index[0] 去定位他的 index 来确定控件的,这个时候可以记录下一个 index。
接着用自动化工具去跑应用,记录了点击了某一个控件,获得了他的所有信息,也得到了这个 index。
是否可以通过这个方式去比对他们,确认两种方式点击的控件是不是同一个呢?

因为有看到帖子说,应用的 xml 树不是固定的,但是不确认这个说法的真实性,想求教一下。

共收到 3 条回复 时间 点赞

在同级的布局下,在原先记录的 index 控件前面增加相同类型的控件元素,这样原先记录下 index 会不会发生变化

匿名 #2 · 2019年10月28日

用 list 去定位 取下标就可以 又增加了同样的控件 改下下标就可以

有办法但需要自己设计实现,可用 Hierarchy 的数据,dumpsys activity top 中 View Hierarchy:部分,下面的 # 部分,代表着区别

native:
android.support.v7.widget.ViewStubCompat{ca26463 G.E..... ... 0,0-0,0 #7f090012 app:id/action_mode_bar_stub}
RN
com.facebook.react.views.view.ReactViewGroup{f158dd3 V.E..... ... 0,0-1079,552 #17e87}

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册