无法识别对象的解决办法

无法识别对象的解决办法

ID:12681719

大小:40.00 KB

页数:3页

时间:2018-07-18

无法识别对象的解决办法_第1页
无法识别对象的解决办法_第2页
无法识别对象的解决办法_第3页
资源描述:

《无法识别对象的解决办法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、问题一:CannotIdentifyObjectQTP运行时报错说无法识别对象,如果你的对象在对象库里面本身存在但还报出这个错误,这就表示仓库中对象的描述与程序中对象的描述一定存在着差异。解决对象描述问题的第一步是找到差异,最简单的方法是将仓库(ObjectRepository)中对象的属性值与程序中对象的属性值(用ObjectSpy查看)进行比较。比较的结果:一.如果仓库和程序中对象属性有差别,两种情况1.如果同类对象都存在此问题,则可在ObjectIdentification对话框中改变该类的识别属性的设置,或定义该类的SmartIdentification设置并启用SmartId

2、entification机制,这样QTP就可以唯一识别对象了。2.如果是单个对象存在此问题,则可以按照以下方法解决a.如果被测程序中对象描述发生了改变,并且你也清楚改变的内容,并且该改变是永久性或长期性的,你可以直接手工修改仓库中对象描述中的相关属性值。b.如果被测程序中的对象的属性值依赖于前面的步骤或其它对象,则将该属性值参数化,这样就可以使用其它步骤的输出值为属性值。c.如果属性值的组成部分中,部分是固定的,部分是动态改变的,则可以将属性值设计为正则表达式。d.如果属性值是遵循某种规则变化的,或者是不可预期的,则从对象描述中移除该属性,并向对象描述中添加一个或多个属性以便于QTP进

3、行对象识别。e.将仓库中相应的对象删除,采用描述性编程的方式来识别对象;(实践证明此方法最好用)二.如果仓库和程序中对象属性无差别,则说明这个错误可能与它的父对象有关(如仓库中父对象的属性值与程序中父对象的属性值不一致),也可能是仓库中的对象与程序中对象的继承关系不相同导致的。判断继承关系中哪个父对象出现问题的两种方法如下:1.通过重新录制对象,检查到新旧对象是父对象的描述存在不同,还是它们的继承关系根本就不同。(1)如果是父对象的描述问题,则在对象仓库中修改父对象的描述。(2)如果是对象的继承关系不正确(即具有不同的父对象)引起的问题,则在脚本中找到所有使用该继承关系的实例,将它们替

4、换为正确的继承关系。例如:有一个带有Frame的网站,你录制了一个操作针对Image对象“Poster”的操作步骤。在ObjectRepository窗口,你可以Image对象的继承关系如下所示:MyCompany(Browser) MyCompany(Page)  Main(Frame)  Poster(image)    当你运行脚本时,网页看起来没有什么不同,但是识别Image对象时却出现了“Cannotidentiryobject”的错误提示。当你重新录制操作步骤,然后在ObjectRepository窗口中查看新的Image对象时,发现该对象的继承关系如下所示:MyCompa

5、ny(Browser)    MyCompany(Page)         Poster(image)    从中可以看出,Frame已经从WebPage中移除,所以尽管Image对象“Poster”的描述没有发生任何改变,但它的继承关系已经改变了。在ObjectRepository窗口,你可以看到新旧Image对象“Poster”是两个完全不同的对象:旧的位于已经被移除的Frame对象之下,而新的则直接位于Page“Mycompany”对象之下。修复这个问题,可以在脚本步骤中将旧的对象替换为新的对象。为了保持ObjectRepository窗口的整洁,你应删除那些已不再存在的对象(

6、如本例中的Frame)。2.创建Exist语句,以判断父对象的描述是否存在问题    QTP在录制发生在某个对象上的操作时,也会同时去了解对象以及它的继承关系。因此,如果在运行过程中,QTP不能识别继承关系中的任何一个父对象,都会导致目标对象的识别失败。    使用带有Exist方法的Msgbox语句,可以方便的检查出是继承关系中的哪个父对象出现了问题。    假设在运行下面脚本时,你遇到了“CannotidentifyObject”错误信息(但是可以确定对象仓库中Link对象的描述与当前程序中对象的描述是完全一致的):Browser("Yahoo!").Page("Yahoo!").

7、Link("Arts&Humanities").Click你可以在该语句前面插入以下语句:MsgboxBrowser("Yahoo!").ExistMsgboxBrowser("Yahoo!").Page("Yahoo!").ExistMsgboxBrowser("Yahoo!").Page("Yahoo!").Link("Arts&Humanities").Exist然后从头开始运行脚本,发现第1行语句运但是当QTP运行到第2步时,就弹出信息

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。