手把手教你TestComplete_對象的等待問題

來源:互聯網
上載者:User

 

 

 因為各種各樣的原因,回放指令碼的時候不會那麼順利,測試環境可能慢一些,被指令碼一催趕,立刻變得結結巴巴的,或者本來很伶俐的程式,突然一下就腦子短路,半天沒動靜了。反正一句話,常在河邊走,偶爾總會踩狗屎的。所以對象的等待問題很難繞過去。

首先說等待,等待誰?仔細琢磨下,應該是等待下一個動作的相應對象,比如你完成上一個步驟後,要在下一個表單的某個按鈕上點擊一下,這個表單老半天不出來,表面是表單不出來,表單真出來了,你就敢說那個按鈕一定能點得上?所以別傻傻的去等表單,得找正主,具體的那個按鈕。找到了正主,你就可以隨便選擇方法了。

可以玩狠的,直接死迴圈,你不出來我就死給你看:
  while (not obj1.obj1.obj1.obj1.exists)
    BuiltIn.delay 3000,"等待obj1。。。"
  Wend

探討一下,這裡exists有沒有問題,如果這個對象已經在記憶體了,但是介面上沒有顯示出來,這句話就會有問題,會不會改成visible更好,那如果在記憶體了,又沒顯示出來,就白等了。那你寫日誌說對象在記憶體了,但是沒顯示出來就好啦。

還有種情況,會不會對象出來了,exists和visible都是true了,但是螢幕是刷白的狀態,你做點擊動作可能還是不行,會不會那麼邪呼的,真的,會有這種更變態的情況的。那咋辦,抓圖片比對吧,這個法子肯定沒問題了,都能看到了,還不能操作呀。

  while (not Regions.Compare("obj1bmp", obj1.obj1.obj1.obj1. obj1bmp, False, False, True, 0))
    BuiltIn.delay 3000,"等待obj1bmp。。。"
  Wend

這個怎麼做的?錄製的時候選擇了圖片的checkpoint,然後就貼出代碼來。

這個做法比較山寨,一旦表單出不來,整個代碼就不用跑了。

什嗎?山寨?還有更山寨的!啥代碼都不用寫,直接設定一下:
菜單:Tools—Default project – properties
左面樹狀目錄:playback
右面第一排右邊的那項:Auto-wait timeout,ms: 10000
哦,原來是預設等待10秒。
懂了塞,直接搞個倆小時,我就不信你不出來了,如果不出來就是死了,你都死了,那我也不用動了。

你們這些做法都太山寨太江湖氣了。看看標準的做法,TestComplete提供了一系列的Wait函數。

舉個例子:
TestObj.WaitVBObject(Name, Timeout)

TestObj A variable, parameter or expression that specifies a reference to one of the objects listed in the Applies To section
  
Name [in] Required String  
Timeout [in] Required Integer  
Result Object

解釋:
是誰要等誰,通常來說都是父物件等待子物件,TestObj就是父物件,name就是子物件名字,timeout自然是要等多久,過時就代碼決定該何去何從了。Result就返回子物件的引用。

看出來了吧,名門正派就是講究的更清晰準確,誰等誰,等多久,用什麼Wait函數來等,沒等到可以代碼細節處理。

 

總結:

不同的情況採取不同方式,如果你只需要完成一個簡單的系統自動化,並不需要做很多控制,要求維護成本最低,那就直接配置個倆小時得了,如果你的系統需要精細化控制,就用wait函數來精確控制。至於死迴圈的那倆法子,你不想改變更配置置,又不想搞清楚是什麼wait函數來等,就直接山寨了吧。

夠用就好。大家自己選擇吧。

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.