QTP常见问题解答

发表于:2008-09-11来源:作者:点击数: 标签:qtpQTP问题解答
1. 运行错误:不能识别对象( Cannot identify object) 出现了这个错误时,就表示当前被测程序的窗口中没有符合条件的对象。 出现这种错误,可能的原因有以下两种: 对象此时在程序中没有显示或不存在。 在程序中存在该对象,但是它的描述在后来发生了改变
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.ltesting.net