MVPJWILL 发表于 2012-11-26 22:30:39

关于QTP10录制点击事件的问题

最近在做QTP录制.NET中的toolstrip控件,起初点击toolstrip中的Item时,QTP都会产生CLICK 坐标的录制脚本;后来做了.NET扩展发现点击后没有事件响应了!QTP无脚本产生!然后撤销扩展的配置,回到初始的QTP下,同样没有产生事件响应。。。。想请教下,这是什么原因造成的呢??不胜感激!

MVPJWILL 发表于 2012-12-3 21:17:10

回复 6# 泰然


    我录制的是一个客户端软件,安装前还原的系统WIN7+QTP10,我只是对客户端的TOOLSTRIP进行点击录制,并没有其他的操作。。。

泰然 发表于 2012-11-27 10:26:35

QTP对未能分辨出明确类的控件最终会默认指定成WinObject类,WinObject.Click时都带相对坐标,这就是你最初录制出带坐标脚本的原因。

你所说的“.Net扩展”可能就是.Net插件(Add-in),加了.Net插件后反而无法识别一个toolstrip控件,原因应该是这个控件不是QTP封装过得.Net标准控件,建议你用spy抓一下这个控件,看看被QTP识别成什么了。我估计可能是由于这个控件的某个属性导致导致QTP认为这个对象没有Click事件,所以就录制不到点击的操作了。

至于去掉插件后还是没有,可能由于QTP的一些缺陷导致的,建议你按照关掉被测软件、关掉QTP、重开QTP、在插件管理器(Add-ins Manager)中选择插件、重开被测软件的顺序多来几次,要是还不行,重启电脑。QTP在对象识别这个功能上确实还存在一些bug,但大多都能通过重启应用和系统的方式解决。

MVPJWILL 发表于 2012-11-27 22:29:30

回复 2# 泰然


    多谢哥们耐心答复,我今天重新搭了套测试环境。在之前的环境中,测试过的TOOLSTRIP里的ITEM能被识别为SWFTOOLbar的,用SPY识别该TOOLSTRIP的TYPE为System.Windows.Forms.TOOlstrip,这都是正常的,可是最初QTP是可以录制点击事件的,后来不知怎么回事,点击控件都没了响应了。。。。。 本来是想做个控件扩展,结果连响应都没有了。。。

MVPJWILL 发表于 2012-11-27 22:33:58

回复 2# 泰然


    识别成WINOBJECT.click坐标是低级别录制,这个我知道,但是我起初识别的是.NET下的SWFOBEJECT.CLICK,最要命的是后来点击 却没有事件响应了。。。。

MVPJWILL 发表于 2012-11-28 20:55:13

回复 2# 泰然


    哥们 还能再给点提示吗

泰然 发表于 2012-11-29 09:53:03

本帖最后由 泰然 于 2012-11-29 10:28 编辑

重装QTP了没有?可能QTP坏了。
装了什么杀毒软件、360、金山词霸了没有?可能这些软件和QTP冲突或者把QTP某个功能禁止了。
看看能不能录制其他东西?用qtp自带的flight试验一下,录制www.baidu.com试验一下。如果都不能那肯定是上面2个原因。

如果仅仅是这个控件的这个操作无法录制,还有一个可能,就是被测试的软件里有中断获取事件句柄的代码,使得QTP无法获得事件了,而之前你的操作实际上和你后来做的操作有微小差别,导致之前的操作不会中断程序获取事件句柄。

给你举个例子:

网页程序里,有个<input type="text" id="text1">的onKeyDown指向的javascript函数里有以下语句:
if(document.getElementById('text1').value.length>=10){
....

alert('...');
event.returnValue=false;
}
这个语句是判断某个条件下,先弹出提示框然后让这个输入操作无返回。一旦我们的操作满足了判断条件,先提示让事件中断然后让事件无返回,那么QTP就无法录制到这里的输入事件。

MVPJWILL 发表于 2012-12-3 21:36:00

回复 6# 泰然


    我测的是.NET做的客户端,我的操作都是一样的,都是还原后的WIN7系统安装的QTP10,直接开启客户端录制点击TOOLSTRIP的事件的,后来的操作都没有了响应...

泰然 发表于 2012-12-4 14:00:36

那现在还能录制其他脚本吗?你试一试。打开操作系统自带动计算器,点1+2=关闭,然后回放,看看有脚本产生吗?能成功回放吗?

泰然 发表于 2012-12-4 14:12:41

你到现在有没有排除掉一些原因?比如QTP坏了需要重装?比如杀毒软件导致QTP无法录制?

之前问你的也没见你回答,现在还能不能录制其他脚本?如果能,说明QTP还是好用的。那么如果问题既然存在,你首先应该先spy一下,看看工具条到底被QTP识别成什么了。你要说出来,否则别人没法帮你了。你仅仅说“后来的操作都没有了响应..”,别人不知道到底是什么意思,没了什么操作的响应,是对录制没响应啊,还是对回放无响应。

xiaoshi_2011 发表于 2012-12-7 14:17:52

路过,学习了

MVPJWILL 发表于 2012-12-16 13:35:07

回复 10# 泰然


    其他的都可以录制的 ,就是工具栏里的点击事件没有响应 ,没有响应的意思的无录制脚本产生,SPY识别为 TOOLSTRIP
页: [1]
查看完整版本: 关于QTP10录制点击事件的问题