如何使用Robotiium处理进度条

时间:2013-07-15 10:21:57

标签: android robotium

我正在使用Robotium自动化应用程序,在输入凭据后,屏幕上会出现进度条。在这里,我面临挑战,因为进度条不是活动所以我不能使用solo.waitForDailogToClose()方法。

请告诉我如何检测和处理此进度条。我正在使用solo.sleep,但是如果进度条花费超过指定的时间,那么在tearDown方法中它不会关闭应用程序并挂起我的下一个测试执行。

谢谢, Md Ashfaq

3 个答案:

答案 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语句退出循环。