51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4690|回复: 11
打印 上一主题 下一主题

[原创] 关于QTP10录制点击事件的问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2012-11-26 22:30:39 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
最近在做QTP录制.NET中的toolstrip控件,起初点击toolstrip中的Item时,QTP都会产生CLICK 坐标的录制脚本;后来做了.NET扩展发现点击后没有事件响应了!QTP无脚本产生!然后撤销扩展的配置,回到初始的QTP下,同样没有产生事件响应。。。。想请教下,这是什么原因造成的呢??不胜感激!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

推荐
 楼主| 发表于 2012-12-3 21:17:10 | 只看该作者
回复 6# 泰然


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

使用道具 举报

该用户从未签到

12#
 楼主| 发表于 2012-12-16 13:35:07 | 只看该作者
回复 10# 泰然


    其他的都可以录制的 ,就是工具栏里的点击事件没有响应 ,没有响应的意思的无录制脚本产生,SPY识别为 TOOLSTRIP
回复 支持 反对

使用道具 举报

  • TA的每日心情
    擦汗
    2016-3-16 15:27
  • 签到天数: 25 天

    连续签到: 1 天

    [LV.4]测试营长

    11#
    发表于 2012-12-7 14:17:52 | 只看该作者
    路过,学习了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2012-12-4 14:12:41 | 只看该作者
    你到现在有没有排除掉一些原因?比如QTP坏了需要重装?比如杀毒软件导致QTP无法录制?

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

    使用道具 举报

    该用户从未签到

    9#
    发表于 2012-12-4 14:00:36 | 只看该作者
    那现在还能录制其他脚本吗?你试一试。打开操作系统自带动计算器,点1+2=关闭,然后回放,看看有脚本产生吗?能成功回放吗?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2012-12-3 21:36:00 | 只看该作者
    回复 6# 泰然


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

    使用道具 举报

    该用户从未签到

    6#
    发表于 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就无法录制到这里的输入事件。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
     楼主| 发表于 2012-11-28 20:55:13 | 只看该作者
    回复 2# 泰然


        哥们 还能再给点提示吗
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
     楼主| 发表于 2012-11-27 22:33:58 | 只看该作者
    回复 2# 泰然


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

    使用道具 举报

    该用户从未签到

    3#
     楼主| 发表于 2012-11-27 22:29:30 | 只看该作者
    回复 2# 泰然


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

    使用道具 举报

    该用户从未签到

    2#
    发表于 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,但大多都能通过重启应用和系统的方式解决。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-15 22:33 , Processed in 0.109160 second(s), 29 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表