`

QTP模拟鼠标和键盘事件方法整理

    博客分类:
  • 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模拟鼠标和键盘事件整理

    ### QTP模拟鼠标和键盘事件整理 #### 一、模拟鼠标事件 在自动化测试领域,尤其是使用QTP(Quick Test Professional)工具时,模拟鼠标事件是常见且重要的操作之一。本部分将详细介绍如何通过QTP的脚本来实现对...

    QTP模拟键盘输入方法

    ### QTP模拟键盘输入方法详解 #### 一、概述 在自动化测试领域,尤其是Web应用和桌面应用的自动化测试过程中,模拟键盘输入是一项非常重要的功能。QTP(Quick Test Professional),现已被更名为UFT(Unified ...

    模拟鼠标键盘的控件(附源代码)

    例如,你可以创建一个按钮,当点击这个按钮时,通过调用模拟MK控件的方法,实现鼠标在屏幕上的移动、单击、双击等动作,或者模拟键盘的按键事件,如按下、释放等。这样,即使没有物理设备,程序也能自动执行一系列的...

    QTP9.0破解方法

    QTP 9.0 破解 方法QTP 9.0 破解 方法QTP 9.0 破解 方法QTP 9.0 破解 方法QTP 9.0 破解 方法QTP 9.0 破解 方法

    QTP破解方法和工具

    QTP破解版安装教程和工具

    QTP10破解方法和汉化补丁

    QTP10破解方法和汉化补丁

    QTP的安装和配置过程

    "QTP安装和配置过程详解" QTP(Quick Test Professional)是一款功能强大的测试自动化工具,广泛应用于软件测试领域。为了帮助初学者和测试人员快速掌握QTP的安装和配置过程,本文将详细介绍QTP 9.2的安装设置过程...

    QTP一些常用问题的解决方法

    以上就是关于QTP一些常用问题的解决方法,每个问题都需要结合具体的项目环境和需求来处理。在实践中不断学习和积累经验,可以更有效地解决QTP使用中遇到的问题。通过深入理解和熟练运用这些知识,可以提升测试工作的...

    QTP利用VBS的SendKeys模拟键盘操作

    本文将详细介绍QTP利用VBS的SendKeys模拟键盘操作的方法和技巧。 基本键 在使用SendKeys时,基本键可以直接用该按键字符本身来表示,例如要发送字母"a",使用`wshShell.Sendkeys "a"`,如果要发送字符串"happy",...

    QTP11操作手册整理

    【QTP11操作手册整理】 Quick Test Professional (QTP) 11 是一款由HP公司(现可能为Micro Focus)开发的功能测试自动化工具,它主要用于执行功能测试和回归测试的自动化。QTP11在2009年发布,支持多种操作系统、...

    QTP脚本技术(权威)整理

    QTP提供了WaitForObject和Synchronize方法来确保对象准备好接受下一个动作后再继续执行。 10. **增强型脚本**:除了基本的VBScript语法,还可以使用一些高级技巧,如用户定义的函数、类模块和集合操作,来提升脚本...

    QTP安装和使用教程

    QTP安装和使用教程; QTP自动化测试; QTP安装过程中的注意事项;

    qtp安装和调试方法

    QuickTest Professional(QTP)是HP(现已被Micro Focus收购)推出的一款自动化测试工具,主要用于功能测试和回归测试。在本篇文章中,我们将详细介绍QTP的安装与调试过程,帮助你顺利掌握这一强大的自动化测试平台...

    QTP使用方法总结

    通过深入学习和实践,掌握QTP的使用方法,能够显著提升软件测试的效率和质量,降低手动测试的工作量,确保产品的稳定性。QTP的学习资源包括官方文档、在线教程以及社区交流,不断学习和研究可以进一步提升自动化测试...

    QTP11操作手册整理.rar

    3. **函数和方法**:如`Description`函数用于描述对象,`Click`、`Type`等是对象的方法,用于模拟用户操作。 4. **变量**:用于存储数据,如`Dim myVar`声明一个变量。 5. **控制结构**:如`For...Next`循环、`If....

    QTP参数传递的三种方法

    ### QTP参数传递的三种方法详解 #### 一、引言 QTP(QuickTest Professional),现称为UFT(Unified Functional Testing),是一款广泛应用于自动化功能测试的工具,它支持多种类型的软件应用程序。QTP提供了丰富的...

Global site tag (gtag.js) - Google Analytics