测试中经常出现明明有控件或者文本,但是由于界面没有载入完成或者其他原因导致assert判断的结果失败。或者两次执行,一次成功,一次失败的情况。所以需要加入这些等待某些控件或者文本载入的方法,以加强程序执行的健壮性。
sleep是固定长度时间的等待,waitFor则是等待某个控件或者文本载入后再进行下一步操作。 故两者都能用的情况下,推荐waitFor
sleep,固定时间的等待
void sleep(int time) 让测试停止若干时间以便进行下一步操作 参数: time-停止的时间,单位是毫秒,如sleep(2000),是停止了2秒钟 返回: 无
waitFor,等待特定的某个控件或者文本载入后再进行下一步操作 boolean waitForActivity ( Class<extends android.app.Activity > activityClass | String name [, int timeout]) 等待某个activity载入以进行下一步操作 参数: activityClass-定位activity的class name-定位activity的名称 timeout-失效时间,如果过了这个时间就不再等待,认为失败。单位毫秒,默认20秒 返回: true-在失效时间前出现了activity false-过了失效时间仍未找到
boolean waitForView ( Class<T> viewClass [, int timeout, boolean scroll]) 等待某个view载入以进行下一步操作,通过view的class定位 参数: viewClass-定位view的class timeout-失效时间,如果过了这个时间就不再等待,认为失败。单位毫秒,默认20秒 scroll-是否允许滚动搜索,true表示支持,false表示只能在当前屏幕内查找
返回: true-在失效时间前出现了view false-过了失效时间仍未找到
boolean waitForView (int id [, int minimumNumberOfMatches, int timeout, boolean scroll]) 等待某个view载入以进行下一步操作,通过view的id定位 参数: id-定位view的id minimumNumberOfMatches-最小指定多少才可以往下进行,0表示1个或者多个 timeout-失效时间,如果过了这个时间就不再等待,认为失败。单位毫秒,默认20秒 scroll-是否允许滚动搜索,true表示支持,false表示只能在当前屏幕内查找 返回: true-在失效时间前出现了view false-过了失效时间仍未找到
boolean waitForView ( android.view.View.view view [, int timeout, boolean scroll]) 等待某个view载入以进行下一步操作,通过view名称定位 参数: view-定位view的名称 timeout-失效时间,如果过了这个时间就不再等待,认为失败。单位毫秒,默认20秒 scroll-是否允许滚动搜索,true表示支持,false表示只能在当前屏幕内查找 返回: true-在失效时间前出现了view false-过了失效时间仍未找到
boolean waitForText (String text [, int minimumNumberOfMatches, int timeout, boolean scroll, boolean onlyVisible])等待某个文本载入以进行下一步操作
参数:text-等待的文本 minimumNumberOfMatches-最小指定多少才可以往下进行,0表示1个或者多个
timeout-失效时间,如果过了这个时间就不再等待,认为失败。单位毫秒,默认20秒 scroll-是否允许滚动搜索,true表示支持,false表示只能在当前屏幕内查找 onlyVisible-只有可见的才会被统计
返回: true-在失效时间前出现了view false-过了失效时间仍未找到
|