1. 程式人生 > >QTP中Wait與同步點的區別

QTP中Wait與同步點的區別

    先說wait函式,當指令碼走到wait函式時,就開始執行這個函式.如:wait(10),就等待10秒種後再繼續執行下面的語句.wait函式的這個等待的時間,那相對來說是比較固定的.如上例子,一定要等待完10秒後再執行.所以寫指令碼的時候要自己估算一下時間.不然可能造成時間的浪費,或者等待時間的不足.

    那同步點呢.等待時間就比較靈活了,它的等待時間是不固定的.設定同步點後,當指令碼執行到這句話後,指令碼就開始執行等待.指令碼會在規定時間內不斷的去檢查,所同步的物件有沒有出現,一但出現,指令碼就繼續往下執行.不需要等完所有規定時間.如果在規定的時間內,所要同步物件還沒有出現,那就提示超時的錯誤資訊.

Window("Flight Reservation").ActiveX("Threed Panel Control").WaitProperty "text", "Insert Done...", 10000


    當指令碼執行到這句話時,就開始執行同步等待時間.這裡設定超時時間為10000毫秒(10秒).在這個時間內,指令碼會不斷去檢視該物件的text屬性的屬性值Insert Done...,有沒有出現.一但同步到這個屬性值,就開始執行下面的指令碼了.而不需要再繼續等待,直到1000秒結束為止.那這樣的話,這個等待時間不用自己去控制,設定好後由程式自己去判斷,就比較靈活,也不會出現浪費時間的情況.能提高指令碼的執行率.

舉例:

Sub WaitProperty_Example()
'The following example uses the WaitProperty method to make the
'test wait until the ActiveX "Calendar" object is enabled, or for
'5 seconds (5000 milliseconds) to pass. If the object is enabled before
'4 seconds pass, QuickTest clicks the object.
With Window("Date").ActiveX("Calendar")
    If .WaitProperty("Enabled", True, 5000) = False Then
        Reporter.ReportEvent 1, "Calendar"
, "Object Disabled"
    Else
        .Click 95, 100
    End If
End With
End Sub