我正在使用Robotium自動執行應用程序,在輸入憑證後,進度條出現在屏幕上。在這裏我面臨一個挑戰,因爲進度條不是一個活動,所以我不能使用solo.waitForDailogToClose()方法。如何使用Robotiium處理進度條
請讓我知道如何檢測和處理這個進度條。我正在使用solo.sleep,但是如果進度條需要超過指定時間,那麼在tearDown方法中,它不會關閉應用程序並掛起我的下一個測試執行。
感謝, 馬里蘭州阿什法克
我正在使用Robotium自動執行應用程序,在輸入憑證後,進度條出現在屏幕上。在這裏我面臨一個挑戰,因爲進度條不是一個活動,所以我不能使用solo.waitForDailogToClose()方法。如何使用Robotiium處理進度條
請讓我知道如何檢測和處理這個進度條。我正在使用solo.sleep,但是如果進度條需要超過指定時間,那麼在tearDown方法中,它不會關閉應用程序並掛起我的下一個測試執行。
感謝, 馬里蘭州阿什法克
這應該解決您的問題:
do {
solo.sleep(1000);
} while(!solo.getCurrentViews(ProgressBar.class).isEmpty());
試試這個:
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;
}
你登錄後試試這個代碼。
while(!solo.waitForView(ProgressBar.class,1,1000))
{
}
此循環將繼續,直到進度欄變爲不可見爲止。此外,您可以定義任何標準並使用break
語句退出循環。