QTP模拟鼠标和键盘事件方法整理
来源:百度文库 编辑:神马文学网 时间:2024/07/07 09:55:31
(2009-02-15 20:18:57)转载
标签:qtp
模拟鼠标
键盘
事件
方法
整理
it
分类:QTP测试工具
1、鼠标事件
1.1 使用自带的Click方法
看QTP的帮助,每个对象都有自带的Click方法,通过其中第三个参数指定具体的鼠标事件
例如:
Browser("New Page").page("New Page").WebElement("html tag:=Form").Click
0,0,micRightBtn
注意Click方法的前两个参数是相对坐标,即相对于对象控件左上角的坐标。
然而执行脚本时常常发现右键功能无法回放。这需要通过设置回放级别解决。例如:
Setting.WebPackage("ReplayType") = 2
Browser("New Page").page("New Page").WebElement("html tag:=Form").Click
0,0,micRightBtn
Setting.WebPackage("ReplayType") = 1
1.2 使用自带的FireEvent方法
具体使用参考QTP的帮助吧,需要提醒一下,右键菜单的弹出对应的是"oncontextmenu"事件,这个帮助里没有提到,当然依赖于开发的代码实现。
1.3 使用mercury.devicereplay
Set devReplay = CreateObject("mercury.devicereplay")
devReplay.MouseClick absx+4,absy+4,2
1.4 使用Windows底层的mouse_event
如果上面的方法仍然不管用,就要采用更底层的方法了。不过这种方式不推荐,因为mouse_event识别的是绝对坐标,你还需要在调用 mouse_event前获取对象的绝对坐标。需要说明的是,如果没有使用MOUSEEVENTF_ABSOLUTE,函数默认的是相对于鼠标当前位置的点,用0,0表示,会被认为是当前鼠标所在的点。
Extern.Declare micVoid, "mouse_event", "user32.dll", "mouse_event", micByte,micByte,micDWord,micULong
Extern.mouse_event MOUSEEVENTF_RIGHTDOWN,0,0,0
2、键盘事件
2.1 SendKeys (重点讲下,因为之前没有接触过)
最常用的模拟键盘操作的事件就是SendKeys了,具体说明一样参考QTP的帮助。
需要说明的是QTP帮助中的例子,需要做一些调整,QTP中执行不需要显示指定Wscrīpt执行shell命令,否则会报错。正确的例子(先打开大些开启的灯,3秒后自动关闭,非常形象的例子)如下:
Set WshShell = CreateObject("Wscript.Shell") '这里要特别注意不能写成Wscrīpt.Shell,否则会报“ActiveX 部件不能创建对象: 'Wscrīpt.Shell'”错误。
WshShell.SendKeys "{CAPSLOCK}"
wait 3
WshShell.SendKeys "{CAPSLOCK}"
当然我们也可以先定义一个function,然后每次都调用这个function。
Public Function sendKeys(stringWord)
Dim WSH
On Error Resume Next
Set WSH = CreateObject("WScript.Shell")
WSH.SendKeys stringWord
Set WSH = Nothing
End Function
sendKeys ("{CAPSLOCK}") '这里注意括号中的写法
wait 3
sendKeys ("{CAPSLOCK}") '这里注意括号中的写法
2.2 Mercury.DeviceReplay
Set devReplay = CreateObject("mercury.devicereplay")
devReplay.SendString("a")
2.3 使用Windows底层的keybd_event
Extern.Declare micVoid, "keybd_event", "user32.dll", "keybd_event", micByte,micByte,micDWord,micULong
Extern.keybd_event 42,0,0,0
注意一下这里的第一个参数是10进制的。
SendKeys的使用要方便一点,但是稳定性不如后者,
Function RtClick( Obj )
absx = Obj.GetROProperty("abs_x")
absy = Obj.GetROProperty("abs_y")
Set devReplay = CreateObject("mercury.devicereplay")
devReplay.MouseClick absx+4,absy+4,2
set devReplay = nothing
End Function
标签:qtp
模拟鼠标
键盘
事件
方法
整理
it
分类:QTP测试工具
1、鼠标事件
1.1 使用自带的Click方法
看QTP的帮助,每个对象都有自带的Click方法,通过其中第三个参数指定具体的鼠标事件
例如:
Browser("New Page").page("New Page").WebElement("html tag:=Form").Click
0,0,micRightBtn
注意Click方法的前两个参数是相对坐标,即相对于对象控件左上角的坐标。
然而执行脚本时常常发现右键功能无法回放。这需要通过设置回放级别解决。例如:
Setting.WebPackage("ReplayType") = 2
Browser("New Page").page("New Page").WebElement("html tag:=Form").Click
0,0,micRightBtn
Setting.WebPackage("ReplayType") = 1
1.2 使用自带的FireEvent方法
具体使用参考QTP的帮助吧,需要提醒一下,右键菜单的弹出对应的是"oncontextmenu"事件,这个帮助里没有提到,当然依赖于开发的代码实现。
1.3 使用mercury.devicereplay
Set devReplay = CreateObject("mercury.devicereplay")
devReplay.MouseClick absx+4,absy+4,2
1.4 使用Windows底层的mouse_event
如果上面的方法仍然不管用,就要采用更底层的方法了。不过这种方式不推荐,因为mouse_event识别的是绝对坐标,你还需要在调用 mouse_event前获取对象的绝对坐标。需要说明的是,如果没有使用MOUSEEVENTF_ABSOLUTE,函数默认的是相对于鼠标当前位置的点,用0,0表示,会被认为是当前鼠标所在的点。
Extern.Declare micVoid, "mouse_event", "user32.dll", "mouse_event", micByte,micByte,micDWord,micULong
Extern.mouse_event MOUSEEVENTF_RIGHTDOWN,0,0,0
2、键盘事件
2.1 SendKeys (重点讲下,因为之前没有接触过)
最常用的模拟键盘操作的事件就是SendKeys了,具体说明一样参考QTP的帮助。
需要说明的是QTP帮助中的例子,需要做一些调整,QTP中执行不需要显示指定Wscrīpt执行shell命令,否则会报错。正确的例子(先打开大些开启的灯,3秒后自动关闭,非常形象的例子)如下:
Set WshShell = CreateObject("Wscript.Shell") '这里要特别注意不能写成Wscrīpt.Shell,否则会报“ActiveX 部件不能创建对象: 'Wscrīpt.Shell'”错误。
WshShell.SendKeys "{CAPSLOCK}"
wait 3
WshShell.SendKeys "{CAPSLOCK}"
当然我们也可以先定义一个function,然后每次都调用这个function。
Public Function sendKeys(stringWord)
Dim WSH
On Error Resume Next
Set WSH = CreateObject("WScript.Shell")
WSH.SendKeys stringWord
Set WSH = Nothing
End Function
sendKeys ("{CAPSLOCK}") '这里注意括号中的写法
wait 3
sendKeys ("{CAPSLOCK}") '这里注意括号中的写法
2.2 Mercury.DeviceReplay
Set devReplay = CreateObject("mercury.devicereplay")
devReplay.SendString("a")
2.3 使用Windows底层的keybd_event
Extern.Declare micVoid, "keybd_event", "user32.dll", "keybd_event", micByte,micByte,micDWord,micULong
Extern.keybd_event 42,0,0,0
注意一下这里的第一个参数是10进制的。
SendKeys的使用要方便一点,但是稳定性不如后者,
Function RtClick( Obj )
absx = Obj.GetROProperty("abs_x")
absy = Obj.GetROProperty("abs_y")
Set devReplay = CreateObject("mercury.devicereplay")
devReplay.MouseClick absx+4,absy+4,2
set devReplay = nothing
End Function
QTP模拟鼠标和键盘事件方法整理
C#模拟键盘鼠标事件 - 护马 - 博客园
用VB模拟键盘事件的N种方法
用mouse_event模拟鼠标事件
鼠标键盘模拟控制器JoyToKey Ver4.1
Delphi下利用WinIo模拟鼠标键盘详解
国内企业首创竹键盘和竹鼠标供不应求
配合使用鼠标和键盘打开“我的电脑”窗口
键盘代替鼠标
鼠标键盘失灵 乱
只用键盘,不用鼠标
键盘代替鼠标20100706
键盘代替鼠标.
键盘代替鼠标
键盘代替鼠标
键盘代替鼠标
只用键盘,不用鼠标
键盘代替鼠标2
废旧键盘鼠标...工艺品
只用键盘,不用鼠标
键盘代替鼠标12
浅析linux下键盘设备工作和注册流程 -tty串口﹑hid鼠标键盘和usb盘相关 - ...
用电脑连接电视的方法,2套键盘,鼠标,各不耽误,就是爽
用电脑连接电视的方法,2套键盘,鼠标,各不耽误!