QTP中Wait與同步點的區別
阿新 • • 發佈:2019-02-04
先說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" |
Else |
.Click
95, 100 |
End
If |
End With |
End Sub |