其他测试框架 Robotium 的抓取 Toast 的问题

未来来 · 2014年05月30日 · 最后由 王智强 回复于 2018年01月08日 · 2304 次阅读

操作时这样的,我点击屏幕后会弹出一个 Toast。然后通过 toast 上面的 Text 提示来判断操作有没有成功。
但我尝试了 solo.waitForText 和 solo.searchText 都失败了,想请问有什么解决思路么?

共收到 8 条回复 时间 点赞

我之前用过 waitForText,是可以识别纯文本的 toast 的。
其他的思路我暂时能想到的是 waitForView,但是 Toast 并没有 id 啊,所以我觉得应该很难吧。

两种方法,你试下哪种 ok?
boolean ToastFind(String str1){
/*
* 登陆后,通过提示来判定登陆是否成功
*/
TextView toastTextView=solo.getText(0);
if(toastTextView!=null){
String toastText=toastTextView.getText().toString();
solo.sleep(1000);
assertEquals(toastText, str1);
Log.d(TAG, toastText);

}
solo.waitForDialogToClose(2000);
Log.d(TAG, str1);
return true;
}

public void searchToast(String str){
/*
* 弹出提示框,点击确定
*/
if(solo.searchText(str)){
Log.d(TAG2, str);
solo.clickOnText("确定");
gotwoback();

}
else{
Log.d(TAG2, "ok");
solo.goBack();
solo.sleep(500);
solo.goBack();
}
}

#2 楼 @keen_lau 我的情况类似于你第一种方法,点击后弹出 toast 的,但好像还是抓不到 toast 上的 text

贴个图看下

#3 楼 @75281920 toast 是底层的东西 好像是抓不到的。

#5 楼 @lihuazhang appium 在 api18 上貌似实现了

@seveniruby appium 如何获取 Toast 内容?

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