QTP-AutoIt V3另类解决Click回放无效

上一篇 / 下一篇  2012-12-03 12:07:51 / 个人分类:QTP

之前的一个项目,发现一个疑难杂症,情景是这样的:
公司有一款视频会议产品,其控制台终端采用B/S架构,控制台镶嵌在WEB中,内有一模拟遥控器,上面的【上下左右】方向键对应地可以控制硬件终端的PTZ,但是非常奇怪的是,当QTP能够成功识别该对象,生成的脚本中也自动对其采用了Click方法的时候我发现:回放脚本的时候该Click方法(单击)根本没有起作用?
于是我首先尝试使用WIN 32 API直接基于句柄对其强制发送点击消息,发现还是没有效果,这时候我发现,这个遥控器方向键的【上下左右】的事件不是单纯的Click方法那么简单-Click方法和MouseDOWN方法是有明显区别的,但是问题又来了,当我想要在后面跟上MouseDown语句的时候,却发现,该对象不支持FireEvent方法,我无法点燃MouseDown事件。
于是请来了AutoIt V3(大名鼎鼎的插件,网上搜索一下就知道了)
在官网直接下载安装包进行安装,安装完成后,QTP中可以直接对其DLL进行引用,最终写完下面的脚本后,回放成功了。
 
这个按键想要回放成功,其真正的事件是这样的:
1.CLICK(要使用绝对定位,因为其上方有一张模拟遥控器图片遮住下面的按钮,坑爹的开发人员啊。。。。。。)
2.MouseDown
3.保持MouseDown事件一段时间,可以使用Wait函数
4.MouseUp

'AutoIt组合完美解决Click失效问题 By Archer

Option Explicit

Dim x,y,autoit

'创建autoit对象
Set autoit=createobject("AutoItX3.Control")

'坐标很重要,但是代码写的很灵活,取的是对象运行时的两个属性
x=Browser("致胜视频终端控制台--172.16.236.6").Dialog("#32770").WinButton("↑").GetROProperty("abs_x")
y=Browser("致胜视频终端控制台--172.16.236.6").Dialog("#32770").WinButton("↑").GetROProperty("abs_y")

autoit.MouseClick "left",x+22,y+16,2,1
autoit.MouseDown "left"

'想要在按钮上MouseDown的时间,默认为1秒钟
wait 1
autoit.MouseUp "left"


TAG: 疑难杂症 QTP qtp

 

评分:0

我来说两句

qddegtya

qddegtya

DiggerPlus - 一个有范儿的测试人垂直内容科技博客

日历

« 2024-03-25  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 8054
  • 日志数: 10
  • 建立时间: 2011-09-05
  • 更新时间: 2013-11-09

RSS订阅

Open Toolbar