Robotium robotium 怎么获取多层布局嵌套下的控件呢?

yunbin_7 · 2014年12月17日 · 最后由 guan 回复于 2015年03月04日 · 2364 次阅读

大家好,请教一下,有些 app 的布局嵌套非常多层级,我要如何才能获取到最里面的控件,然后使用它的点击事件呢?有没有比较好的方法呢?

共收到 8 条回复 时间 点赞

可以使用 android 自带的 hierarchyviewer 工具,找到对应的空间 ID,然后根据空间 ID 去实现想要的控件的 onclick 方法。可以参考我写的 robotium 专题(三)http://www.testerhome.com/topics/1666

你没有理解我的意思,我是想问如何通过这种层级关系,去访问到最底层的控件,触发点击事件。

参考父控件和子控件以及 index 之间的关系来定位

#2 楼 @yunbin_7 哦,刚又看了下,呵呵, @kasi 已经回答了,主要是参考父控件和子控件以及 index 来定位,如:View view = null;view = solo.getView("android:id/text1",1);solo.clickOnView(view);简单解释下:Android 的 Activity 下面的控件的 ResourceId 是允许重复的,比如 NotePad 上面的 ListView 里面的每一个 Note 的 ResourceId 其实都是"android:id/text1".所以这种情况下我们必须要加上 index 来区分开我们需要的是第几个 note。不知道这么解释是否明白?

#4 楼 @bill 稍微明白了点,你说的这个方法我同事也有提到,但是不清楚哪个 solo.getView("android:id/text1",1) 这两个参数的意义,特别是第二个参数应该是 index 吧,但是我同事却跟我说是 view 的个数。但是,如果嵌套多层,那 view 肯定是非常多的。能否详细指导下这个用法呢?谢谢!

#4 楼 @bill 你好,还在不?布局嵌套的 index 这个问题,可以帮忙指导一下么?谢谢!

index 怎么看啊,UI antomator 好像看不出来..

#1 楼 @bill 没有 ID 怎么解决

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