博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
QTP录制鼠标右键点击选择操作(转载)
阅读量:4710 次
发布时间:2019-06-10

本文共 1494 字,大约阅读时间需要 4 分钟。

由于项目用到鼠标右键操作,这篇转载真的很有用。

原文地址:

  很多时候,对于模拟对象右击并选择某个弹出选项的操作识别率并不好。

  个人总结了一些比较常见也比较有效的方法。

  基本上QTP识别针对鼠标右击并选择的操作有三种方法:

  针对任何语言都适用的

  1、创建Wscript.Shell对象

  2、创建.DeviceReplay对象

  3、针对JAVA\NET\WEB适用的FIREEVENT方法

  不管什么架构什么语言的程序也好,要录制鼠标右击对象并选择弹出选项的操作一般来说都是三个步骤:

  1、录制激活对象的操作

  2、录制鼠标右键点击的操作

  3、录制选取弹出选项的操作

  下面就三个步骤分别说明:

  第一步:如果被激活对象的方法参数中有BUTTON定义的话,那就只需加上对应的BUTTON值直接录到弹出右键,然后再录第三步的操作,而不需再去录第2步的操作(具体那些方法的参数中有带BUTTON的,有时间我会列个表出来)

  对象方法中没有button参数的话那当然只能老老实实的录制或者用description program(描述性编程,简称dp)的方法激活对象。然后录制第2步

  第二步第三步:针对那些录不到鼠标右击操作的对象,可以采用Wscript.Shell,或者Mercury.DeviceReplay的方法来模拟。

  例如作这样一个录制(鼠标右击开始菜单,选取属性)

  使用Wscript.Shell的方法如何录制:

  Window("Window").WinButton("开始").Click 0, 0, micRightBtn

  Dim Wsh,n

  n=3 '对应循环的次数

  Set Wsh=CreateObject("Wscript.Shell")

  For i=1 to 3

  wait 1 '等待一秒可以清楚地看到效果

  Wsh.SendKeys "{UP}" '相当于鼠标向上移动三次到属性的位置

  Next

  Wsh.SendKeys "{Enter}" '按下回车键选取属性

  Set Wsh=nothing '释放Wsh变量

 

  使用Mercury.DeviceReplay对象如何录制:

  '使用Mercury.DeviceReplay对象录制必须先知道对象的绝对坐标,所以的先执行下面的脚本\或者使用objectspy去识别录制对象的绝对坐标

  Window("Window").WinButton("开始").Click 0, 0, micRightBtn

  Set ctlr = DotNetFactory.CreateInstance("System.Windows.Forms.Control")

  For i = 1 To 1 step 1

  Wait 2

  Print "1. X=" & ctlr.MousePosition.X & "; Y=" & ctlr.MousePosition.Y

  Next

  '得出当前对象的坐标后就可以录制右键操作了

  Dim DevRep

  set DevRep=CreateobJECT("MERCURY.DeviceReplay")

  wait 1

  DevRep.PressNKeys "72",3 模拟连续按下Up的操作循环三次

  DevRep.PressKey "28" 模拟按下enter的操作

转载于:https://www.cnblogs.com/crash88/p/3737200.html

你可能感兴趣的文章
linux开启coredump的3种方法
查看>>
数据驱动之 python + requests + Excel
查看>>
小鸡啄米问题求解
查看>>
Castle.net
查看>>
HDU1532 网络流最大流【EK算法】(模板题)
查看>>
PHP使用curl替代file_get_contents
查看>>
Webstorm通用设置
查看>>
jquery倾斜的动画导航菜单
查看>>
JAVA IO流的简单总结+收集日志异常信息
查看>>
类型转换与键盘输入
查看>>
面向对象(2)
查看>>
运算符(1)
查看>>
掷骰子游戏和条件语句
查看>>
循环语句
查看>>
加标签的continue用法
查看>>
递归算法
查看>>
java继承 、方法重写、重写toString方法
查看>>
SQL注入原理-手工联合注入查询技术
查看>>
实验3 SQL注入原理-万能密码注入
查看>>
redis cluster
查看>>