51Testing软件测试论坛

标题: QTP无法识别弹出的对象窗口 [打印本页]

作者: gaoyoumei    时间: 2009-6-10 21:58
标题: QTP无法识别弹出的对象窗口
【问题描述】:使用QTP9.2录制一个应用程序,测试的对象是一个弹出窗口,
            1、第一次打开这个弹出窗口1,QTP的Object Spy能够识别这个弹出窗口的所有对象属性,
            2、在这个弹出窗口上再点击一个按钮“首页模板”,打开另外一个弹出窗口2,同样,Object Spy也能够识别这个弹出窗口的所有对象属性,
            3、点击确定,关闭弹出窗口2,
            4、这个时候,Object Spy不能够识别弹出窗口1的所有对象属性。
【相关问题】:该软件是一个C/S结构的软件,客户端是IE6.0,QTP录制脚本也是再IE上录制的,弹出窗口是用Java Script语言写的。
已经尝试的方法:使用QTP对象管理仓库来录制,行不通,找不到对象,使用自定义对象的方式,同样找不到对象。
望高手能指点一下,不胜感谢!

[ 本帖最后由 gaoyoumei 于 2009-6-11 17:15 编辑 ]
作者: dreamever    时间: 2009-6-11 09:18
最简单的方法,在录制脚本的过程中,避免同时打开两个弹出窗口的方式。当脚本开发过程中碰到问题的时候,也可以采取一些变通的方法,因为我们毕竟是测试人员,自动化测试的目的是实现你的测试用例,还要考虑时间成本。

[ 本帖最后由 dreamever 于 2009-6-11 09:20 编辑 ]
作者: intothestorm    时间: 2009-6-11 09:59
4、这个时候,Object Spy不能够识别弹出窗口1的所有对象属性。
还有这种情况出现?贴图!!!
作者: itisok    时间: 2009-6-11 10:51
听起来确实挺诡异的~
作者: dreamever    时间: 2009-6-11 11:45
原帖由 itisok 于 2009-6-11 10:51 发表
听起来确实挺诡异的~

你头像里的那只猫更诡异
作者: itisok    时间: 2009-6-11 14:20
标题: 回复 5# 的帖子
暹罗猫,都这样~没觉得诡异啊
在楼主帖子里灌水,不好意思了
作者: gaoyoumei    时间: 2009-6-11 17:13
重新上传了附件,如图!
作者: gaoyoumei    时间: 2009-6-11 17:16
原帖由 dreamever 于 2009-6-11 09:18 发表
最简单的方法,在录制脚本的过程中,避免同时打开两个弹出窗口的方式。当脚本开发过程中碰到问题的时候,也可以采取一些变通的方法,因为我们毕竟是测试人员,自动化测试的目的是实现你的测试用例,还要考虑时间成本。 ...



谢谢这位兄弟的回复,没有其他可变通的办法,因为这个系统,弹出窗口很多,使用对象库很繁琐,所以全部使用vbs进行自定义对象,然后使用描述性编程来实现,这个问题如果能解决,这个过程就能进行下去了,到时候,我会把实现的过程以及这次自动化开发的框架总结出来,让大家来点评。

[ 本帖最后由 gaoyoumei 于 2009-6-11 17:18 编辑 ]
作者: intothestorm    时间: 2009-6-11 18:18
看不出什么问题。
把spy第一次能识别窗口1的图,和关闭窗口2后spy不能识别窗口1的图也帖上来吧。
作者: gaoyoumei    时间: 2009-6-11 22:21
原帖由 intothestorm 于 2009-6-11 18:18 发表
看不出什么问题。
把spy第一次能识别窗口1的图,和关闭窗口2后spy不能识别窗口1的图也帖上来吧。

兄弟,你好像都没有看懂我的意思哦,不然不会没有看到不能识别的“弹出窗口1”吧
作者: dreamever    时间: 2009-6-12 09:22
这个问题有点难度了,以前碰到过类似的问题,当关闭一个对话框时,系统的主界面会重新绘制,界面元素的属性也都不一样了,因此导致脚本测试失败。但是楼主的问题好象有点不一样,你的问题是连spy都识别不到任何对象……我只能关注了
作者: intothestorm    时间: 2009-6-12 09:42
原帖由 gaoyoumei 于 2009-6-11 22:21 发表

兄弟,你好像都没有看懂我的意思哦,不然不会没有看到不能识别的“弹出窗口1”吧

你说的不能识别是QTP不能识别这个控件吧,即不是QTP支持的标准控件?
那就应该是dreamever说的这种情况。
遇到这种问题,我现在的做法是直接找开发写个简单的DLL,封装我需要的方法,通过sendMessage的方式直接操作这种自定义控件。
作者: gaoyoumei    时间: 2009-6-13 21:01
标题: 回复 12# 的帖子
呵呵,关键是那个弹出窗口1在第一次打开得时候,QTP是能使别的,在窗口1上再打开一个窗口2后,窗口1就不能被QTP识别了。
作者: hihotb    时间: 2009-6-14 14:20
有点晕,期待更详细的解答
作者: tianmimi521    时间: 2009-6-14 14:26
没遇到过这种情况呀,LZ问题解决了吗?你关闭窗口2后窗口1刷不刷新?
作者: gaoyoumei    时间: 2009-6-14 20:41
原帖由 tianmimi521 于 2009-6-14 14:26 发表
没遇到过这种情况呀,LZ问题解决了吗?你关闭窗口2后窗口1刷不刷新?


关闭窗口2后窗口1不全部刷新,会刷新局部。
作者: kaidong12    时间: 2009-9-6 03:23
实在不行就用虚拟对象吧
作者: 处处楚楚    时间: 2009-9-28 17:28
顶一下,我也遇到同样的问题,盼望给出有效解决方法
作者: Itarky    时间: 2009-10-19 10:29
顶,我也遇到此问题。
测试WEB的时候,用object spy 查看对象,发现对象只能识别到page一级,以前page下面的能识别的对象都不能识别了。
此种情况出现在关闭弹出试窗口之后。很是不理解,哪位高人能指点一下。
作者: 处处楚楚    时间: 2009-10-19 10:41
我也是遇到这种情况,关闭弹出试窗口之后只能识别到PAGE一级,已经郁闷很长时间了。
作者: 杨超    时间: 2009-10-19 12:16
碰到过类似问题,可以将这两个对象添加到对象库,然后用F7手动写打开的步骤应该是可以打开的。
作者: june.diny    时间: 2009-10-19 12:49
手动加载对象库,是否可以呢 ?
作者: wiko2000    时间: 2010-10-29 17:04
我也碰到这个问提.....os只识别整个窗口为winbject,窗口上的checkbox等都不能单独识别
作者: Coolwind9    时间: 2010-11-1 11:19
                    快速回复主题
作者: kavensyw    时间: 2010-11-1 12:33
本帖最后由 kavensyw 于 2010-11-1 12:51 编辑

最好详细问问开发,初次打开窗口1和关闭窗口2后对窗口1的处理有哪些区别。
关键是关闭窗口2后都处理了哪些控件,最好能把两段代码拿来自己分析分析

我的一点疑惑:
1. 关闭窗口2后,窗口1中的控件不能识别,是指识别成Windows Object 还是根本就圈不上?
2. 那么弹出窗口1本身能否识别,窗口1的父对象能否识别?
3. 两次操作后,窗口1的父对象属性有没有变化?
能否把前后两次spy图截上来看看

我的猜想:
1.会不会是关闭弹出窗口2后,当前有效窗口不是窗口1呢,可能是窗口1的上一层对象。虽然窗口1显示在最上层,但它不是当前Activate
2. 窗口2关闭后,刷新了窗口1的部分属性,窗口1的上一层对象是不是也更改了部分属性
作者: DreamsYCX    时间: 2012-5-29 17:23
╮(╯▽╰)╭没有我要的答案
作者: lhq866    时间: 2016-7-29 14:01
顶一下,我也遇到同样的问题,都找了好多办法还是不行,对象中的参数值都在变,每次都识别不了。盼望给出有效解决方法
作者: 陈2517    时间: 2017-1-19 08:54
楼主,你解决这个问题了吗?我现在也遇到这个问题,第二层窗口再出来的弹窗,SPY可以获取到属性,但是在对象管理那里就录不到这个弹窗了,原来我如果是直接关闭的话,就用wshShell.SendKeys “{Enter}” ‘模拟回车键,可是我现在要获取那个静态的文字信息,这回就弄不到了,现在做一个也不能识别,很忧伤




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