Robotium API 翻譯(四)——等待執行的方法sleep、waitFor

測試中經常出現明明有控件或者文本,但是由於界面沒有載入完成或者其他原因導致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-過了失效時間仍未找到


boolean waitForDialogToOpen([int timeout])

等待對話框打開

參數:

timeout-失效時間,如果過了這個時間就不再等待,認爲失敗。單位毫秒,默認20秒

返回:

true-在失效時間前打開了dialog

false-過了失效時間仍未打開


boolean waitForDialogToClose([int timeout])

等待對話框關閉

參數:

timeout-失效時間,如果過了這個時間就不再等待,認爲失敗。單位毫秒,默認20秒

返回:

true-在失效時間前關閉了dialog

false-過了失效時間仍未關閉


boolean waitForWebElement (By by [, int minimumNumberOfMatches, int timeout, boolean scroll])

等待某個web控件載入以進行下一步操作

參數:

by-定位web控件的by屬性

minimumNumberOfMatches-最小指定多少纔可以往下進行,0表示1個或者多個

timeout-失效時間,如果過了這個時間就不再等待,認爲失敗。單位毫秒,默認20秒

scroll-是否允許滾動搜索,true表示支持,false表示只能在當前屏幕內查找

返回:

true-在失效時間前出現了web控件

false-過了失效時間仍未找到


boolean waitForFragmentById (int id [, int timeout])

等待Fragment載入以進行下一步操作,以id定位Fragment

參數:

id-定位Fragment的id

timeout-失效時間,如果過了這個時間就不再等待,認爲失敗。單位毫秒,默認20秒

返回:

true-在失效時間前出現了Fragment

false-過了失效時間仍未找到


boolean waitForFragmentByTag (String id [, int timeout])

等待Fragment載入以進行下一步操作,以tag定位Fragment

參數:

tag-定位Fragment的tag

timeout-失效時間,如果過了這個時間就不再等待,認爲失敗。單位毫秒,默認20秒

返回:

true-在失效時間前出現了Fragment

false-過了失效時間仍未找到


boolean waitForLogMessage (String logMessage [, int timeout])

等待日誌信息載入以進行下一步操作

參數:

logMessage-等待加載的日誌

timeout-失效時間,如果過了這個時間就不再等待,認爲失敗。單位毫秒,默認20秒

返回:

true-在失效時間前出現了logMessage

false-過了失效時間仍未找到


boolean waitForCondition (Condition condition, int timeout)

等待某種條件加載以進行下一步操作

參數:

condition-需要滿足的條件

timeout-失效時間,如果過了這個時間就不再等待,認爲失敗。單位毫秒,默認20秒

返回:

true-在失效時間前出現了滿足condition的條件

false-過了失效時間仍未找到


注:Condition是一個interface,裏面只有一個方法isSatisfied () ,用於多條件的等待

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章