Robotium robotium 如何获取 App 弹出框并对它进行操作

jenius · 2015年04月23日 · 最后由 jenius 回复于 2015年04月24日 · 2262 次阅读

最近在自学 robotium,在使用过程中,发现 robotium 对于 App 的弹出框 (popupwindow) 的处理有不明白的地方:对于 App 弹出的全屏覆盖的弹出框可以进行抓取、操作,而对于那种非全屏覆盖 (点击框框外面可以自动取消弹出框) 的弹出框无法聚集焦点,找不到它。
目前手中只有 APK 包,开发并没有对我共享源码。让他们查了下,这个 popupwindow 没有 id,里面有一个 listview,有 id,所以,我用 robotium,还怎么去获取它操作它?

共收到 8 条回复 时间 点赞

帮你 @shixue33 ,她对 robotium 应该比较熟。

= =所以.....是 getView(String id)获取不到吗?

#2 楼 @shixue33 你这样是不对的。。。

啊~popupwindow 应该是用 uiautomatorviewer 看不到的,dump 没有那些层,但是 Robotium 是可以抓取到的,你如果用 Robotium 的话,可以试试这个抓:https://github.com/shixue33/GetViewInfo_for_Android

妹子好强大啊~弹出对话框不是还有焦点问题么?貌似都是算坐标位置,直接用坐标点击的吧?~

@shixue33 恩,你说的没错。这个 popupwindow 虽然看不到,但是 robotium 确实是可以抓取的,我找开发要到这个 listview 的 id,可以通过这个 id 去找到 child 所有值。我之前一直觉得如果不抓取这个 popupwindow 而直接用里面 listview 的 id 会行不通,囧。。看来只有 APK 包的话,好多类似这种的控件确实不方便。谢谢各位了

#6 楼 @jenius 你可以试着用一下 solo.getCunrentViews 这个方法,这个方法返回的信息比 uiautomatorviewer dump 回到的信息多很多

#7 楼 @shixue33 ok,记住了,晚上回去试下。多谢女侠

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