- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
问题一:Cannot Identify Object
QTP运行时报错说无法识别对象,如果你的对象在对象库里面本身存在但还报出这个错误,这就表示仓库中对象的描述与程序中对象的描述一定存在着差异 解决对象描述问题的第一步是找到差异,最简单的方法是将仓库Object Repository)中对象的属性值与程序中对象的属性值Object Spy查看)进行比较。可在Object Identification对话框中改变该类的识别属性的设置,或定义该类的Smart Identification设置并启用Smart Identification机制,这样QTP就可以唯一识别对象了。如果被测程序中对象描述发生了改变,并且你也清楚改变的内容,并且该改变是永久性或长期性的,你可以直接手工修改仓库中对象描述中的相关属性值。如果被测程序中的对象的属性值依赖于前面的步骤或其它对象,则将该属性值参数化,这样就可以使用其它步骤的输出值为属性值。如果属性值的组成部分中,部分是固定的,部分是动态改变的,则可以将属性值设计为正则表达式。如果属性值是遵循某种规则变化的,或者是不可预期的,则从对象描述中移除该属性,并向对象描述中添加一个或多个属性以便于QTP进行对象识别。这个错误可能与它的父对象有关(如仓库中父对象的属性值与程序中父对象的属性值不一致),也可能是仓库中的对象与程序中对象的继承关系不相同导致的。 通过重新录制对象,检查到新旧对象是父对象的描述存在不同,还是它们的继承关系根本就不同。如果是父对象的描述问题,则修改父对象的描述。如果是对象的继承关系不正确(即具有不同的父对象)引起的问题,则在脚本中找到所有使用该继承关系的实例,将它们替换为正确的继承关系。有一个带有Frame的网站,你录制了一个操作针对Image对象“Poster”的操作步骤。在Object Repository窗口,你可以Image对象的继承关系如下所示: MyCompany(Browser)?MyCompany(Page)??Main(Frame)
??Poster(image)
???? 当你运行脚本时,网页看起来没有什么不同,但是识别Image对象时却出现了“Cannot identiry object”的错误提示。当你重新录制操作步骤,然后在Object Repository窗口中查看新的Image对象时,发现该对象的继承关系如下所示: MyCompany(Browser)???? MyCompany(Page)????????? Poster(image)
???? 从中可以看出,Frame已经从Web Page中移除,所以尽管Image对象“Poster”的描述没有发生任何改变,但它的继承关系已经改变了。在Object Repository窗口,你可以看到新旧Image对象“Poster”是两个完全不同的对象:旧的位于已经被移除的Frame对象之下,而新的则直接位于Page“Mycompany”对象之下。修复这个问题,可以在脚本步骤中将旧的对象替换为新的对象为了保持Object Repository窗口的整洁,你应删除那些已不再存在的对象(如本例中的Frame)。 创建Exist语句,以判断父对象的描述是否存在问题???? QTP在录制发生在某个对象上的操作时,也会同时去了解对象以及它的继承关系。因此,如果在运行过程中,QTP不能识别继承关系中的任何一个父对象,都会导致目标对象的识别失败。???? 使用带有Exist方法的Msgbox语句,可以方便的检查出是继承关系中的哪个父对象出现了问题。???? 假设在运行下面脚本时,你遇到了“Cannot identify Object”错误信息(但是可以确定对象仓库中Link对象的描述与当前程序中对象的描述是完全一致的):Browser(Yahoo!).Page(Yahoo!).Link(Arts Humanities).Click
你可以在该语句前面插入以下语句:Msgbox Browser(Yahoo!).Exist
Msgbox Browser(Yahoo!).Page(Yahoo!).ExistMsgbox Browser(Yahoo!).Page(Yahoo!).Link(Arts Humanities).Exist
然后从头开始运行脚本,发现第1行语句运但是当QTP运行到第2步时,就弹出信息框,内容为“False”,表示不能找到Page object。这就证明Page对象存在问题确定了出现问题的父对象以后,修复该问题。The object is not unique
某类对象的对象描述都不足以唯一识别对象,在Object Identification对话框中,改变该类的识别属性的设置,或定义该类的Smart Ide
文档评论(0)