我正在使用Robotium自动化应用程序,在输入凭据后,屏幕上会出现进度条。在这里,我面临挑战,因为进度条不是活动所以我不能使用solo.waitForDailogToClose()方法。
请告诉我如何检测和处理此进度条。我正在使用solo.sleep,但是如果进度条花费超过指定的时间,那么在tearDown方法中它不会关闭应用程序并挂起我的下一个测试执行。
谢谢, Md Ashfaq
答案 0 :(得分:0)
这可以解决您的问题:
do {
solo.sleep(1000);
} while(!solo.getCurrentViews(ProgressBar.class).isEmpty());
答案 1 :(得分:0)
试试这个:
private boolean progressBarVisible() {
if (mSolo.getCurrentViews(ProgressBar.class).isEmpty()) {
return false;
}
ArrayList<ProgressBar> barView = mSolo.getCurrentViews(ProgressBar.class);
for (ProgressBar elt : barView) {
if (elt.isIndeterminate()) {
if (Config.DEBUG) {
return false;
} else {
Log.d(TAG, "still visible ");
Log.d(TAG, "not indeterminate ");
}
}
}
return true;
}
答案 2 :(得分:0)
登录后尝试使用此代码。
while(!solo.waitForView(ProgressBar.class,1,1000))
{
}
此循环将继续,直到进度条变为不可见。此外,您可以定义任何条件并使用break
语句退出循环。