我不知道有没有人像我一样曾经有段时间很纠结 robotium 获取 toast 的问题。在很多场景下,我总是希望如果某个操作发生功能性的错误(一般以 toast 形式提示错误信息),我总是希望脚本把它记录下来,但是错误信息和错误总是各种各样的,不可能一一匹配。或者有一个功能我要统计它的健壮性,记录错误信息感觉也是必要的。
在我仅仅只会百度的时候,很多 robotium 的教程说没法获取 toast,但是可以使用 waitforText 或者 searchText 通过关键词。
那么问题来了,waitforText 和 searchText 可以检索到关键词,那么说明 toast 对应的对象存在检索 list 里边,那为啥没法获取 toast 呢。
昨天群里银神点了一下,于是我今天试验了下。
先随便建了个 android app 的项目,加了个按钮,按钮加点击事件,点击弹出一条 toast,大概像这样:
在测试工程中,用工具把当前页面的布局信息存到 sd 卡上(使用的是 GetViewInfo_for_Android 里的 jar 包),代码大概像这样:
GetCurrentInfo gci = new GetCurrentInfo(solo);
solo.sleep(3000);
solo.clickOnView(solo.getView("button1"));
gci.getCurrentInfo(false);
会在 sdcard 卡 GetInfoFile 文件夹存一个 xml 文件。
打开 xml 文件,我就凌乱了。
所以,结论就是 getView("message") 就可以获取到了嘛。
下午再去实践下。可能是个很傻的问题,但是确实我现在才知道。如果有错误求指出 (o)/~
好腻害得妹子。。
#1 楼 @lihuazhang 最后证明了一个好傻的结论
妹子的探索精神很赞啊,现在的测试行业非常缺少你这种探索精神。
赞一个!!
我也不知道。。
厉害
我也不知道..
牛叉
犀利。 超赞。
https://github.com/selendroid/selendroid/issues/609
selendroid 可以做到。 但是 appium 貌似还没引入这个 API
因为 uiautomator 没有提供对应的 toast 识别 api。
厉害,学习了
赞一个
楼主 我遇到同样的问题 ,请问你那个获取到了么????
很赞!继续加油!:)
死不死有点麻烦啊,先运行起来,然后去 sd 卡中看 id,再通过 id 得到 text,然后再判断 text 是否有误。
如果做起来许多 toast 的话这样搞有点累吧……
#21 楼 @sailen 没有,你可以看看这个https://github.com/shixue33/GetViewInfo_for_Android 界面做得太糙,勉强能用。
如果自己写脚本的话,就把启动测试,pull 文件写成脚本就好了。其他的好像没有办法
appium 党经过围观
厉害厉害,学习学习
赞,以后学习了