1

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

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

谢谢,阿什法克博士

4

3 回答 3

0

登录后尝试此代码。

while(!solo.waitForView(ProgressBar.class,1,1000))
{
}

此循环将继续,直到进度条变得不可见。此外,您可以定义任何条件并使用break语句退出循环。

于 2013-12-12T04:08:49.720 回答
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;
}
于 2013-12-11T13:54:34.043 回答
0

This should solve your issue:

do {
    solo.sleep(1000);
} while(!solo.getCurrentViews(ProgressBar.class).isEmpty());
于 2013-07-15T15:26:36.743 回答