51Testing软件测试论坛

标题: 【暂时解决】运行脚本过程中,识别对象出现的间歇性问题,实在没辙了 [打印本页]

作者: liuhuascanf    时间: 2010-4-1 21:54
标题: 【暂时解决】运行脚本过程中,识别对象出现的间歇性问题,实在没辙了
问题描述如下:
我编写了个一个业务的QTP脚本,在回放的时候,部分情况可以整个业务全部跑完,对象能够全部识别
但是也经常出现下面的情况,跑着跑着就挂住了,出现找不到对象的情况。而且我暂停后,SPY的时候,只剩下了Browser(...).Page(...),入下图所示:
[attach]60886[/attach]
而正常的情况应该是page下面的对象都能识别出来的,比如下面的WebEdit对象
[attach]60887[/attach]

一般来讲,把ie关掉后重新打开,可以重新识别,但是跑了一会就出现了开始的问题。
描述性编程和对象库的方式都采用过了,都是一样的问题,中间是有比较长的wait等待时间的
最初通过删除ie缓存、childObjects函数,对象的hightLight方式,DOM的方式都没有彻底解决该问题
实在没辙了,请问各位大侠是否出现过类似的问题?麻烦指点下。

顺便补充下,我的是QTP9.2,同事的9.5和10.0版本都是一样的问题,出现问题的界面,大部分都调用过ajax动态生成的DIV对象,不知道是不是跟这个有关系

[ 本帖最后由 liuhuascanf 于 2010-4-15 09:10 编辑 ]
作者: xxq520    时间: 2010-4-1 23:58
我也出现了这个问题,也想知道怎样解决。昨晚求助了,但还没人说具体怎么做!
作者: liuhuascanf    时间: 2010-4-2 10:04
有人能解决吗?
或者给点提示啥的都行,这个问题困扰了我们好几个同事一段时间了
作者: skyzhu    时间: 2010-4-2 10:13
不清楚,也碰到过。不过是在调试中DEBUG里查看对象的时候报错崩溃掉的,然后只能重启QTP了
作者: xxq520    时间: 2010-4-2 14:05
是不是没加属性进去?[attach]60903[/attach]

[ 本帖最后由 xxq520 于 2010-4-2 14:09 编辑 ]
作者: xxq520    时间: 2010-4-2 14:05
刚一个高手帮我解决了不能识别对象的问题!

[ 本帖最后由 xxq520 于 2010-4-2 14:10 编辑 ]
作者: liuhuascanf    时间: 2010-4-2 14:23
请问xxq520楼上,是哪个对象的属性?
通过对象库是直接add进去的,而且我那个问题是间歇性的,有时候行,有时候不行。
麻烦520兄弟详细说明下呢,或者说说你的问题怎么解决的呢?
作者: wugecat    时间: 2010-4-2 16:30
用IE7.0试试
作者: shotstar    时间: 2010-4-2 16:51
其实我也碰到过。。。貌似无解。。不过我好像用描述性编程可以识别下面的对象。
作者: liuhuascanf    时间: 2010-4-2 17:13
我觉得技术性的问题肯定有解,如果实在不行那也有可能是QTP的BUG了,但是我觉得可能有办法解决
作者: liuhuascanf    时间: 2010-4-2 17:14
我用描述性的和对象库的方式都尝试过
都有这种问题
唉,纠结的蛋疼
作者: wugecat    时间: 2010-4-2 17:19
http://bbs.51testing.com/thread-171461-1-1.html
看看这个贴
作者: liuhuascanf    时间: 2010-4-12 14:06
非常感谢楼上,我从HP的官方网站上下载了个补丁 QTP_00626.EXE,大部分的问题都已经解决了。
    但是还有一个最后的问题,实在太怪异了。我业务执行完毕,最后点确定的时候,连续弹出几个js的对话框,前面几个都能找到对象,而且能识别并且处理。
    但到最后一部的js对话框,就死活执行不下去了,SPY时候又是变成了找不到对象的情况,只能识别到Page一级,就跟上面的截图差不多。而我业务的状态就一直保持着下面图的样子。
[attach]61076[/attach]
作者: shotstar    时间: 2010-4-12 14:14
继续描述性看看咯。
作者: liuhuascanf    时间: 2010-4-12 15:02
唉,描述性和对象库的方式都一样的问题,只能识别到Page页
作者: 风雪夜归人    时间: 2010-4-12 19:04
如果焦点在那个js对话框上面的话,就直接送一个回车得了
Set WshShell = CreateObject("wscript.shell")
WshShell.SendKeys "{ENTER}"
Set WshShell = Nothing
作者: liuhuascanf    时间: 2010-4-15 09:00
非常感谢楼上的兄弟,采用楼上的方法,这个BUG临时解决掉了
抽时间给HP的人沟通沟通,QTP的 补丁没有彻底解决问题。
作者: xiaoyaoke    时间: 2010-4-15 09:35
标题: 回复 18# 的帖子
你的QTP是付费的还是D版的?你们的产品是纯web?
感觉如何条件允许,可以尝试下selenium,我最近在做selenium的测试,在对象定位上的确有独到之处。QTP大而全,商业软件覆盖的应用场景太多了,目前它的Locating Elements貌似是基于DOM的,添加了自己的封装。
而Selenium在对象定位上,除了DOM,还支持XPATH,Re,CSS,如果比较关注爬虫,可以看下,当前的页面解析比较主流的技术包括:正则表达式,XPAHT和DOM,也就是说Selenium的页面对象定位支持全部的三种方式,而且还支持CSS,提供了多种的对象定位方式。

对于你这里经常出现问题的Ajax,Selenium提供了waitFor用来专门处理,非常方便,当然前提是你知道在哪里应用率饿Ajax。

对于后面的js,是不是iframe?如果是iFrame貌似IE本身支持的就不好,至少在前阵子我通过IE DOM获取iFrame中的content就获取不到,在W3C中查资料,里面显示IE6的DOM中对iFrame支持的不好。
作者: 风雪夜归人    时间: 2010-5-5 10:01
标题: 回复 19# 的帖子
我最近也在看Selenium,唉,悲剧啊,有空请教下,谢谢
作者: 小米tone    时间: 2010-5-5 15:17
很菜的问一下
17# 加个回车有什么用处呢?
我现在也遇到同样的问题,有时能识别到webedit,有时就只能识别到page,郁闷。
作者: 风雪夜归人    时间: 2010-5-5 16:30
..加个回车的作用就是把弹出的那个对话框给去掉,这问题还是先看根源的好,这些做法只是下策,你应该从各方面排查,看看是什么原因导致的,比如插件的问题啊,浏览器的问题啊.
作者: xytenghdh    时间: 2010-5-5 17:13
我也遇到过对像找不到的问题,以前可以运行的脚本,停了一个月后再去运行,这些脚本完全找不到对像库,郁闷死了
作者: 小米tone    时间: 2010-5-7 10:33
我的版本是是9.2的,跟楼主出现同样的问题,也需要装补丁吗?可我在官网上看到的都是QTP10.0的补丁啊。。
作者: 43528782    时间: 2011-2-10 16:40
补丁 QTP_00626.EXE


可以给我一份吗?我怎么没有找到啊~谢谢了~
43528782@qq.com




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