Android 如何使用Robotium处理进度条
我正在使用Robotium自动化一个应用程序,输入凭证后,屏幕上会出现进度条。这里我面临一个挑战,因为进度条不是一个活动,所以我不能使用solo.waitForDailogToClose()方法 请让我知道如何检测和处理此进度条。我使用的是solo.sleep,但是如果进度条花费的时间超过了指定的时间,那么在tearDown方法中,它将不会关闭应用程序并挂起下一次测试执行 谢谢,Android 如何使用Robotium处理进度条,android,robotium,Android,Robotium,我正在使用Robotium自动化一个应用程序,输入凭证后,屏幕上会出现进度条。这里我面临一个挑战,因为进度条不是一个活动,所以我不能使用solo.waitForDailogToClose()方法 请让我知道如何检测和处理此进度条。我使用的是solo.sleep,但是如果进度条花费的时间超过了指定的时间,那么在tearDown方法中,它将不会关闭应用程序并挂起下一次测试执行 谢谢, Md Ashfaq这应该可以解决您的问题: do { solo.sleep(1000); } while(!
Md Ashfaq这应该可以解决您的问题:
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;
}
private boolean progressBarVisible(){
if(mSolo.getCurrentView(ProgressBar.class.isEmpty()){
返回false;
}
ArrayList barView=mSolo.GetCurrentView(ProgressBar.class);
对于(ProgressBar elt:barView){
if(elt.isindestime()){
if(Config.DEBUG){
返回false;
}否则{
Log.d(标签“仍然可见”);
Log.d(标签“非不确定”);
}
}
}
返回true;
}
登录后请尝试此代码
while(!solo.waitForView(ProgressBar.class,1,1000))
{
}
此循环将继续,直到进度条不可见为止。此外,还可以定义任何条件并使用break
语句退出循环