整理者: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模拟鼠标和键盘事件整理相关推荐

  1. Android 使用 sendevent 模拟鼠标和键盘事件

    Android 使用 sendevent 模拟鼠标和键盘事件 模拟原理是对驱动发送消息,就是linux里面的input子系统. 命令格式: sendevent /dev/input/eventX [t ...

  2. java鼠标事件获得键盘值_请问JAVA怎么模拟鼠标和键盘事件[200分]

    比如要求模拟鼠标在左下角的[开始]上点一下 多谢 | 看看java.awt.Robot这个类,可能对你有帮助 Class Robot This class is used to generate na ...

  3. 2020.11.18第十三章 事件(事件处理程序;事件对象;事件类型:UI事件;焦点事件;鼠标与键盘事件 变动事件 模拟事件)

    事件处理程序 html事件处理程序(直接在html中书写script) <!-- //#### 事件处理程序 //html时间程序 可以直接在HTML文件中写,而且还可以引用其他地方的方法和函数 ...

  4. 总结Selenium WebDriver中一些鼠标和键盘事件的使用

    在使用 Selenium WebDriver 做自动化测试的时候,会经常模拟鼠标和键盘的一些行为.比如使用鼠标单击.双击.右击.拖拽等动作:或者键盘输入.快捷键使用.组合键使用等模拟键盘的操作.在 W ...

  5. VC 模拟鼠标和键盘输入

    模拟鼠标点击: 1.这里是鼠标左键按下和松开两个事件的组合即一次单击: mouse_event (MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, ...

  6. C++实现鼠标控制 封装常见的模拟鼠标、键盘的操作函数

    API 或 MFC 视窗程序 里 有 函数, 例如 API 函数 设位置: BOOL SetCursorPos( int x, int y); 参数是屏幕坐标x,y 头文件 Winuser.h 链接库 ...

  7. wpf 模拟鼠标和键盘操作

    我们需要用到的mouse_event函数,位于user32.dll这个库文件里面,所以我们要先声明引用. 复制代码 [System.Runtime.InteropServices.DllImport( ...

  8. python监听鼠标事件_Python中使用PyHook监听鼠标和键盘事件实例

    Python 中使用 PyHook 监听鼠标和键盘事件实例 PyHook 是一个基于 Python 的"钩子"库,主要用于监 听当前电脑上鼠标和键盘的事件.这个库依赖于另一个 Py ...

  9. C# WPF 中用代码模拟鼠标和键盘的操作

    C# WPF 中用代码模拟鼠标和键盘的操作 原文:C# WPF 中用代码模拟鼠标和键盘的操作 原文地址 C#开发者都知道,在Winform开发中,SendKeys类提供的方法是很实用的.但是可惜的是, ...

最新文章

  1. 常见网站各种类型页面的缓存时间及涉及的http头
  2. Windows2003无法看到网络连接,修复COM+组件
  3. 损失函数-经验风险最小化-结构风险最小化
  4. matlab人脸和非人脸分割,人脸检测与分割
  5. cocos2d-x初探学习笔记(1)--HelloWorld
  6. E百科 | 第2期 扒一扒能加速互联网的QUIC协议
  7. 贯穿计算机系统所有方面的重要概念,终于有人讲明白了
  8. 自学Java的人,如何系统全面的学习?
  9. java statemachine_StateMachine 状态机机制深入解析
  10. [CareerCup] 18.8 Search String 搜索字符串
  11. 在linux中安装adb和fastboot工具
  12. KL散度-Entropy-JS散度-W距离
  13. 用户行为分析(Python)
  14. React-native 开启DEBUG模式后应用闪退
  15. 2021开年巨作!JDBC连接数据库工具类!
  16. 最大数字 题解 (删除k个数字----贪心)
  17. 折叠屏:手机厂商的「续命良药」
  18. [基础代码仓库]基于STM32C8T6的库函数ADC模拟+DMA多通道转运代码
  19. 《基础微积分教材中译版》--序言
  20. Qt完成简易闹钟与画板

热门文章

  1. Python MySQL(MySQLdb)
  2. 介绍一下unicode,ansi,utf-8,unicode big endian编码
  3. 进程栈大小 与 线程栈大小-转
  4. 蓝桥杯 PREV-32 历届试题 分糖果
  5. int输出%f浮点值是0,double/float 浮点数%d输出0的原因
  6. L3-005. 垃圾箱分布-PAT团体程序设计天梯赛GPLT(Dijkstra)
  7. 车险赔付率分析报告_机动车辆保险赔付率高的原因分析及对策研究
  8. python是一种代表简单主义思想的语言_setuptools-36.6.0
  9. 五大步完成JBOSS 5 多数据库的多数据源配置
  10. Silverlight 主页与页面用户组件中方法的调用顺序