文档详情

QTP解决用户无法识别问题.docx

发布:2024-07-18约6.92千字共8页下载文档
文本预览下载声明

如何去识别对象描述(IdentifyingTestObjectDescrīptionProblems)

如果你能在被测程序中看到对象,但仍出现了“CannotIdentifyObject”错误信息,这就表示仓库中对象的描述与程序中对象的描述一定存在着差异。

解决对象描述问题的第一步是找到差异,最简单的方法是将仓库中对象的属性值与程序中对象的属性值进行比较。(仓库中对象的属性值可在ObjectRepository窗口中查看,程序中对象的属性值可用ObjectSpy功能查看。)

比较仓库中对象的属性值与程序中对象的属性值的操作见1.3.在完成比较后,是否发现存在差异?如果是,请参考1.4;如果否,请参考1.5.

处理对象丢失问题(SolvingMissingObjectProblems)

在运行脚本时,QTP尝试进行某种操作,而该操作的对象在程序中却没有出现,出现这种情况的原因有以下几种:

对象不再存在。对象已经被从程序中删除。解决方法:见1.2.1。

对象还没有装载。解决方法:见1.2.2。

当前的程序页面(或窗口)不正确,不是对象所在的页面(或窗口)。解决方法:见1.2.3。

前一个步骤没有正确执行。解决方法:见1.2.3。

解决对象不再存在的问题如果对象已经不再在被测程序中存在,则应在脚本中修改或删除相关步骤。

解决对象装载超时的问题如果对象丢失的原因是因为没有足够的时间装载,尝试以下解决方案:

对于Web对象,增加BrowserNavigationTimeout(FileSettingWeb

页签)时间。

在包括该对象的步骤前使用Wait语句,让QTP在执行该步骤之前等待一段时间。

检查前面步骤的执行情况如果是因为打开了错误的页面(或窗口)导致对象丢失问题,或因为前一步骤执行措误导致对象丢失问题,则请按以下方法检查原因:

a.如果怀疑在完成脚本后,被测程序又发生了改变,则检查对象的继承关系以及对象描述。参考1.1.b.如果怀疑脚本错误,则检查脚本的每一个步骤。你可能是遗失了某个步骤,也可能是使用了不正确的方法或参数。

测试对象的属性值与Run-time对象的属性值的比较(ComparingTestObjectandRun-TimeObjectPropertyValues)

根据以下的步骤比较测试对象与Run-time对象的属性值:1)进入ObecjtRepository窗口(ResourcesObjectRepository),选择对象。

记录对象的class以及它的各个属性及属性值。

打开被测程序,并打开包含被测对象的页面或窗口。

在QTP中选择菜单ToolsObjectSpy或点击ObjectSpy按钮,打开ObjectSpy对话框。

选择“TestObjectProperties”选项。

点击右上角的按钮(带有手图标的),这时QTP窗口以及ObjectSpy

对话框都被最小化。

在程序页面(或窗口)中点击目标对象,恢复ObjectSpy对话框,并在对话框中显示对象及其父对象(以树的形式显示),并在Properties页签中显示当前对象的属性及属性值。

这时ObjectSpy对话框的Properties页签中显示Run-time对象的所有属性,在此查看对象的class,以及它的属性及属性值,并将它与第2步中记下的内容进行比较。

解决对象描述存在的问题(SolvingObjectDescrīptionProblems)如果发现仓库中对象的属性值与程序中对象的属性值存在不同,你应该判断

这个不同是个别对象的问题,还是其它同类对象也存在相同的问题。

是所有(或多个)同类对象都存在问题吗?如果是,则参考1.6;如果否,则参考1.7

关于父对象描述的识别问题(IdentifyingParentObjectDescrīption

Problems)

对象的识别还与它所继承的父对象有关。

如果你能在被测程序中看到对象,而且程序中对象的属性值与仓库中对象的

属性值也是一致的,但仍然遭遇到了“Cannotidentifyobject”错误,则这个错误可能与它的父对象有关(如仓库中父对象的属性值与程序中父对象的属性值不一致),也可能是仓库中的对象与程序中对象的继承关系不相同导致的。

要判断是继承关系中的哪个父对象出现了问题,请尝试下面的方法之一:

重新录制对象,比较新旧对象的父对象。欲了解如何完成比较,参考1.8.

对继承关系中的每个父对象,分别插入一个Exist语句,并运行该部分脚本。

欲了解如果创建Exist语句,参考1.9.注:你也可以

显示全部
相似文档