QTP不能识别对象怎么办?(图文教程)

QTP不能识别对象怎么办?(图文教程)

在自动化测试运行中经常会发生运行过程中提示“对象不能在对象库中被发现,请检查对象库”,因为这么一个小的错误提示而导致花费大量时间去检查对象库特别是当脚本比较大的时候就显得尤为麻烦,特别对于刚入门的同学,发生类似报错容易打消学习的积极性,给自己学习和工作带来苦恼,今天分享一篇个人在解决时的经验,遇到问题也不要泄气,以后就会知道像这种QTP找不到对象,QTP发现对象不唯一,QTP无法识别对象的错误,将会经常出现在眼球。

举一个实例:录制一个脚本,录制的内容很简单就是访问百度,在搜索输入框中输入“1234567”,然后点击“百度一下”就行搜索。引出问题,但是脚本在运行到点击“百度一下”进行搜索的时候提示:对象库找不到对象,录制的内容和报错如下图

首先来看一下错误发生给出的提示信息:

The "百度一下" WebButton object was not found in the Object Repository.

Check the Object Repository to confirm that the object exists or to find the correct name for the object.

Line (3): "Browser("百度一下,你就知道").Page("百度一下,你就知道").WebButton("百度一下").Click".

Tip: If the objects in your application have changed, the Maintenance Run Mode can

help you identify and update your steps and/or the objects in your repository.

对错误提示信息进行分析:第一段错误提示信息,WebButton对象在对象存储库未发现。检查对象库来确认对象是否存在。这个时候至少初步判断是因为“百度一下”这个按钮对象在脚本运行过程中没有在对象库发现。第二段错误提示信息,提示出错的位置是在第三行,然后给出了第三行录制的脚本。第三段错误提示信息,提示我们应该去对象库中去维护发生变化的对象。通过点击QTP操作栏的数据库图标进入对象库。

通过点击对象库左侧对象名前面的+号展开所有对象,展开对象后发现有Browser浏览器、Page网页、网页下面就是一个wd查看类型是一个WebEdit可以确定这就是我们要输入:“1234567”的地方,接着向下看,发现没有找到“百度一下”,重新再次展开继续查找还是没有,这样就初步断定是由于录制过程中或者在对象库维护中对象的遗失,针对这个问题,解决办法就是将遗失的对象添加进去。

将鼠标移动到对象库操作栏上的正方形有个小加号的图标上浮现出:Add Objects to local,添加本地对象,点击这个图标鼠标指针变为一个白色小手,在网页上找到“百度一下”这个按钮,点击这个按钮。

在QTP弹出框中就出现“百度一下”这个按钮,点击OK将这个对象添加进去。我们随后查看图中箭头所指的位置,查看对象是否已经成功添加进了对象库。

点击【F5】→点击【确定】→查看结果如下图所示,脚本运行通过,没有错误,脚本调试成功。

在添加对象时一定要保证页面已经打开,不知道错误在哪个页面就直接在运行一次错误脚本

添加需要的对象,勿乱添加否则容易导致后期对象库的管理将变得非常苦难