QTP模拟鼠标和键盘事件整理
整理者:asoqa整理
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命令,否则会报错。正确的例子如下:
Set WshShell = CreateObject("Wscrīpt.Shell")
WshShell.sendKeys "{DOWN}"
2.2 Mercury.DeviceReplay
Set devReplay = CreateObject("mercury.devicereplay")
devReplay.SendString("a")
下面这篇文章介绍的比较清楚。
http://www.51testing.com/?161787/action_viewspace_itemid_84200.html
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
转载于:https://www.cnblogs.com/zthua/archive/2013/01/09/2853357.html
QTP模拟鼠标和键盘事件整理相关推荐
- Android 使用 sendevent 模拟鼠标和键盘事件
Android 使用 sendevent 模拟鼠标和键盘事件 模拟原理是对驱动发送消息,就是linux里面的input子系统. 命令格式: sendevent /dev/input/eventX [t ...
- java鼠标事件获得键盘值_请问JAVA怎么模拟鼠标和键盘事件[200分]
比如要求模拟鼠标在左下角的[开始]上点一下 多谢 | 看看java.awt.Robot这个类,可能对你有帮助 Class Robot This class is used to generate na ...
- 2020.11.18第十三章 事件(事件处理程序;事件对象;事件类型:UI事件;焦点事件;鼠标与键盘事件 变动事件 模拟事件)
事件处理程序 html事件处理程序(直接在html中书写script) <!-- //#### 事件处理程序 //html时间程序 可以直接在HTML文件中写,而且还可以引用其他地方的方法和函数 ...
- 总结Selenium WebDriver中一些鼠标和键盘事件的使用
在使用 Selenium WebDriver 做自动化测试的时候,会经常模拟鼠标和键盘的一些行为.比如使用鼠标单击.双击.右击.拖拽等动作:或者键盘输入.快捷键使用.组合键使用等模拟键盘的操作.在 W ...
- VC 模拟鼠标和键盘输入
模拟鼠标点击: 1.这里是鼠标左键按下和松开两个事件的组合即一次单击: mouse_event (MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, ...
- C++实现鼠标控制 封装常见的模拟鼠标、键盘的操作函数
API 或 MFC 视窗程序 里 有 函数, 例如 API 函数 设位置: BOOL SetCursorPos( int x, int y); 参数是屏幕坐标x,y 头文件 Winuser.h 链接库 ...
- wpf 模拟鼠标和键盘操作
我们需要用到的mouse_event函数,位于user32.dll这个库文件里面,所以我们要先声明引用. 复制代码 [System.Runtime.InteropServices.DllImport( ...
- python监听鼠标事件_Python中使用PyHook监听鼠标和键盘事件实例
Python 中使用 PyHook 监听鼠标和键盘事件实例 PyHook 是一个基于 Python 的"钩子"库,主要用于监 听当前电脑上鼠标和键盘的事件.这个库依赖于另一个 Py ...
- C# WPF 中用代码模拟鼠标和键盘的操作
C# WPF 中用代码模拟鼠标和键盘的操作 原文:C# WPF 中用代码模拟鼠标和键盘的操作 原文地址 C#开发者都知道,在Winform开发中,SendKeys类提供的方法是很实用的.但是可惜的是, ...
最新文章
- 常见网站各种类型页面的缓存时间及涉及的http头
- Windows2003无法看到网络连接,修复COM+组件
- 损失函数-经验风险最小化-结构风险最小化
- matlab人脸和非人脸分割,人脸检测与分割
- cocos2d-x初探学习笔记(1)--HelloWorld
- E百科 | 第2期 扒一扒能加速互联网的QUIC协议
- 贯穿计算机系统所有方面的重要概念,终于有人讲明白了
- 自学Java的人,如何系统全面的学习?
- java statemachine_StateMachine 状态机机制深入解析
- [CareerCup] 18.8 Search String 搜索字符串
- 在linux中安装adb和fastboot工具
- KL散度-Entropy-JS散度-W距离
- 用户行为分析(Python)
- React-native 开启DEBUG模式后应用闪退
- 2021开年巨作!JDBC连接数据库工具类!
- 最大数字 题解 (删除k个数字----贪心)
- 折叠屏:手机厂商的「续命良药」
- [基础代码仓库]基于STM32C8T6的库函数ADC模拟+DMA多通道转运代码
- 《基础微积分教材中译版》--序言
- Qt完成简易闹钟与画板
热门文章
- Python MySQL(MySQLdb)
- 介绍一下unicode,ansi,utf-8,unicode big endian编码
- 进程栈大小 与 线程栈大小-转
- 蓝桥杯 PREV-32 历届试题 分糖果
- int输出%f浮点值是0,double/float 浮点数%d输出0的原因
- L3-005. 垃圾箱分布-PAT团体程序设计天梯赛GPLT(Dijkstra)
- 车险赔付率分析报告_机动车辆保险赔付率高的原因分析及对策研究
- python是一种代表简单主义思想的语言_setuptools-36.6.0
- 五大步完成JBOSS 5 多数据库的多数据源配置
- Silverlight 主页与页面用户组件中方法的调用顺序