51Testing软件测试论坛

标题: Cannot identify the object 的解决方法 [打印本页]

作者: walker1020    时间: 2007-2-3 12:04
标题: Cannot identify the object 的解决方法
经常有人问,回放脚本的时候出现了Cannot identify the object 的错误。如何解决?
Cannot identify the object是回放脚本时最常见的错误,解决的方法有:
     1,  增加Wait语句 或Sync 试试看看;
     2,  到对象库里面看看录制时对象的属性和回放时的属性是否不同。哪怕是对象的一个属性值发生了变化,最后都可能出现Cannot identify the object的错误;
     3, 如果还不行,你可以把这段代码删除,重新录制一下。这样也能解决问题。
     4,多回放几次试试看,说不定是因为网络的原因引起的。
   
这是我常用的解决方法。不知道别的朋友还有什么好的方法,也说出来讨论一下,这样大家的能力都能得到提高。
作者: denisye    时间: 2007-2-3 17:57
有个小小的经验
在有些操作后,系统会弹出dialog框,这时最好先对这个框先Active一下,然后再对框里面的对象进行操作。
作者: 风过无息    时间: 2007-2-3 21:40
补充:
1、有时候可能需要增加一些特殊的鼠标动作,比如鼠标的over时间等等。
2、有时候在对象无法识别导致的问题的时候需要使用虚拟对象来实现。
作者: walker1020    时间: 2007-2-5 09:20
谢谢denisye (denisye) 和  风过无息 提供了这些解决此问题的方法,也欢迎在更多的朋友提出自己的解决此类问题的方法。这样,新手遇到此类问题时不再感到茫然无助了。
作者: SueR    时间: 2007-2-16 03:25
弱弱的问一下:

虚拟对象是什么?能举例说明?
作者: Vanillalin    时间: 2007-3-1 11:41
我负责测试的产品是一个每周至少一次变更的产品,在回放过程中也经常遇到这个问题,通常都是重新录制出错的代码.
不过有时候很奇怪,试过几次,昨天运行的很顺畅,第二天在回放(期间没有变更过测试对象的代码),却所有对象都不能识别了.
高手能指点一下这是怎么回事吗?
作者: SueR    时间: 2007-3-3 04:45
有人用过插入synchroniazation point么?
有效么?
作者: lantianwei    时间: 2007-7-25 09:03
学习了
作者: xishuai0328    时间: 2008-1-11 14:35
第二条比较有效
嘿嘿
作者: 今天有雾    时间: 2008-1-11 16:20
还有一种情况,对象库中明明记录了这人对象,可是录制的时候却没有录制到任何脚本,非要手工写脚本,不知道这种情如何会出现的哟
作者: enix    时间: 2008-5-26 08:55
有时候第一次回放的时候 会出第二次就会出这个错误
请问这是为什么呢 有没有什么好一点的解决办法?
作者: majun915    时间: 2009-2-4 13:42
全是英文  什么都看不懂啊 哎
作者: duanguanwu    时间: 2010-7-12 08:44
回复walker1020:
   我是初学者
        1,  增加Wait语句 或Sync 试试看看;请问下是增加在哪个位置?
作者: FLY000    时间: 2011-3-29 13:42
http://bbs.51testing.com/thread-429997-1-1.html

这个问题 ,很奇怪,不知道怎么 解决
作者: ljdfdd    时间: 2011-3-29 15:51
haha....
作者: moyiyun    时间: 2011-4-26 15:57
谢谢啦!我出现这个问题,加个wait(1)就好了。
作者: linhd030    时间: 2011-4-27 09:31
回复 13# duanguanwu

如果页面Page下有个Button对象,QTP必须在Page页面出现后才能获取该Button对象
一、这时候可以给Page页面做一个同步等待,如下
    Browser("Browser").Page("Page").Sync
    Browser("Browser").Page("Page").WebButton("Button").Click
二、也可以对Button对象做一个等待,如果10秒内Button对象出现,则对其执行click事件
If  Browser("Browser").Page("Page").WebButton("Button").Exist(10) Then
    Browser("Browser").Page("Page").WebButton("Button").Click
End If
三、
dim c_TimeOut
c_TimeOut=20
for i=1 to 20
if Browser("Browser").Page("Page").WebButton("Button").Exist(1) Then
Browser("Browser").Page("Page").WebButton("Button").Click
End If
wait(1)
If i=20 Then
'这里抛出错误提示
End If
Next

一般是这几种等待,其他的根据实际情况做修改,特别是第三种方法,可以对其做多种修改!
作者: xjy0791    时间: 2011-5-3 11:35
回复 17# linhd030


    请教:Exist后面的数字代表什么啊?
作者: liuwenf110    时间: 2011-6-27 12:28
学习了




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2