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