在我們運行腳本前,有時候忘了清理環境.可能被測對象已經存在了,QTP再次運行時又重新打開了個相同的對象.導致后續步驟,由于QTP根據對象庫中的對象匹配到了兩個相同的對象,不知操作哪個對象了,于是報錯.那我們有沒有辦法避免呢?答案當然是肯定的.我們可以在運行測試腳本前,先寫段腳本來判斷我們要測試的對象是否存在.如果存在可以先關閉,再執行重新打開的操作.接下去以QTP自帶的Fight的登錄框為例.
首先我們用QTP中的object spy來看一下這個窗口的屬性,找到我們可以利用的屬性
這邊我想利用的就是這個窗口的名稱屬性及值,利用這個名稱屬性來告訴QTP該關閉哪個窗口屬性.
代碼如下:
Dim loginwin
Set loginwin=descrīption.Create() ?。摻▽ο竺麨閘oginwin的對象
loginwin( "regexpwndtitle").value="Login" ,對象屬性及值
Set child=desktop.ChildObjects (loginwin)
For i=1 to child.count
child(i-1).close ?。аh尋找這個對象,一次關閉
Next
需要更改的地方,我用藍色表示了,大家也可以自己試試.不過有一點要注意就是,要執行關閉窗口的關系,這個也完全依照windows的特性來做.最上面的處在激活狀態的先關,然后依次關閉其他的窗口.否則腳本會無法執行.可以把這段腳本放在腳本的最前面,實現測試環境的初始化
原文轉自:http://www.anti-gravitydesign.com