QTP使用小技巧

腳本以下:(注意紫色部分腳本)
Dialog("Login").WinEdit("Agent Name:").Set "Cheers.Lee"
Dialog("Login").WinEdit("Password:").SetSecure "49df4eabed69867d55a22bbcdc7cceb6d10c9abc"
Dialog("Login").WinButton("OK").Click
Window("Flight Reservation").WinObject("Date of Flight:").Type "090410"
Window("Flight Reservation").WinComboBox("Fly From:").Select "Frankfurt"
Window("Flight Reservation").WinComboBox("Fly To:").Select "London"
Window("Flight Reservation").WinButton("FLIGHT").Click
Window("Flight Reservation").Dialog("Flights Table").WinList("From").Select "13564   FRA   03:12 PM   LON   03:57 PM   SR     $162.10"
Window("Flight Reservation").Dialog("Flights Table").WinButton("OK").Click
Window("Flight Reservation").WinEdit("Name:").Set "Cheers.Lee"
Window("Flight Reservation").WinButton("Insert Order").Click
a=Window("Flight Reservation").WinEdit("Order No:").GetROProperty("text")
do  while  a=""
wait 1
a=Window("Flight Reservation").WinEdit("Order No:").GetROProperty("text")
Loop
'msgbox a
Window("Flight Reservation").Close
  固然這塊也能夠用條件語句:while ...wend; do ... until 來寫.
  至此,問題解決OK!對於對象不存在的解決方法,也能夠用此方法來解決對象偶爾回放不能識別的問題,再次再也不詳述.但願本文起到拋磚引玉的做用.( 中國軟件工程網
  在編寫腳本時,常常要考慮到2個步驟之間的時間間隔問題,例如,1. 打開[url]www.baidu.com[/url] 2. 輸入avepoint。因爲網速的不一樣,打開百度網頁以後會有必定的延遲,因此1,2兩步之間要有一個短期的等待,能夠經過如下幾種方法實現:
  1. 對象的默認等待時。QTP識別對象時,會有一個默認的等待時間,能夠在File-->Settings-->Run-->Object synchronization中設置,默認時間是20秒,也就是說當執行到第2步時,網頁尚未徹底打開,這樣的話QTP找不到第2步中須要的對象,那麼它會在20秒內不斷的嘗試查找對象,若是百度這個網頁在20秒以內徹底打開,那麼這個方法就可行(網頁所有打開的話,第2步所需的對象就會被找到),若是超過20秒還不行的話,請參考下面幾種方式( 中國軟件工程網)   2. 使用.Sync方法。   仍是打開百度,輸入Avepoint,可用以下代碼來實現   Browser("Browser").Navigate [url]http://www.baidu.com[/url]   Browser("Browser").Page("百度").Sync   Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd").Set "Avepoint"   第2句的意思就是等待百度這個頁面徹底打開,才繼續執行下面操做。   3. 第2種方法只能在Web中使用,那麼若是其餘類型的對象須要等待時間怎麼辦?可使用QTP系統自帶的同步點功能。   仍是上面的例子,在錄製狀態下,選擇Insert-->Synchronization Point,選擇要同步的對象,設置要同步的屬性,咱們能夠對對象的Enable,visible一類表示狀態的屬性作同步點,生成以下腳本   Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd").WaitProperty "visible", True, 100000   這句話的意思就是在100秒的時間內,等待WebEdit這個對象的visible屬性,只要它的visible屬性變爲true,那麼就執行下面操做,最後的100000單位是毫秒,若是在100000毫秒(100秒)後尚未等到visible = true,直接執行下面操做。   4. 利用VBS語句。   Do until Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd").Exist(5)   Wait(1)   Loop   判斷WebEdite這個對象是否出現,若是沒有出現,執行Wait(1),若是出現,跳出循環。   5. 死等大法。   就是用Wait()語句設置等待時間,死等,好比Wait(10),就是腳本中止10秒,任何操做都不作,10秒以後繼續往下執行操做。
相關文章
相關標籤/搜索