1. 運行錯誤:不能識別對象(Cannot identify object)
出現了這個錯誤時,就表示當前被測程序的窗口中沒有符合條件的對象。
出現這種錯誤,可能的原因有以下兩種:
>>> 對象此時在程序中沒有顯示或不存在。
>>>在程序中存在該對象,但是它的描述在后來發生了改變,導致與對象倉庫中存儲的信息不匹配,從而QTP無法識別對象。
如果你正遇到“Cannot identify object”的問題,解決方法見1.1。
1.1 如何去識別對象描述(Idenfirying Test Object Descrīption Problems)
如果你能在被測程序中看到對象,但仍出現了“Cannot Identify Object”錯誤信息,這就表示倉庫中對象的描述與程序中對象的描述一定存在著差異。
解決對象描述問題的第一步是找到差異,最簡單的方法是將倉庫中對象的屬性值與程序中對象的屬性值進行比較。(倉庫中對象的屬性值可在Object Repository窗口中查看,程序中對象的屬性值可用Object Spy功能查看。)
比較倉庫中對象的屬性值與程序中對象的屬性值的操作見1.3。
在完成比較后,是否發現存在差異?
如果是,請參考1.4;
如果否,請參考1.5。
1.2 處理對象丟失問題(Solving Missing Object Problems)
在運行腳本時,QTP償試進行某種操作,而該操作的對象在程序中卻沒有出現,出現這種情況的原因有以下幾種:
>>> 對象不再存在。對象已經被從程序中刪除。
解決方法:見1.2.1。
>>> 對象還沒有裝載。
解決方法:見1.2.2。
>>>當前的程序頁面(或窗口)不正確,不是對象所在的頁面(或窗口)。
解決方法:見1.2.3。
>>>前一個步驟沒有正確執行。
解決方法:見1.2.3。
1.2.1 解決對象不再存在的問題
如果對象已經不再在被測程序中存在,則應在腳本中修改或刪除相關步驟。
1.2.2 解決對象裝載超時的問題
如果對象丟失的原因是因為沒有足夠的時間裝載,償試以下解決方案:
a.對于Web對象,增加Browser Navigation Timeout(File>Setting>Web頁簽)時間。
b.在包括該對象的步驟前使用Wait語句,讓QTP在執行該步驟之前等待一段時間。
1.2.3 檢查前面步驟的執行情況
如果是因為打開了錯誤的頁面(或窗口)導致對象丟失問題,或因為前一步驟執行措誤導致對象丟失問題,則請按以下方法檢查原因:
a. 如果懷疑在完成腳本后,被測程序又發生了改變,則檢查對象的繼承關系以及對象描述。參考1.1。
b. 如果懷疑腳本錯誤,則檢查腳本的每一個步驟。你可能是遺失了某個步驟,也可能是使用了不正確的方法或參數。 |
原文轉自:http://www.anti-gravitydesign.com