我不知道有没有人像我一样曾经有段时间很纠结 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)/~


↙↙↙阅读原文可查看相关链接,并与作者交流