录制鼠标右键点击选择操作

上一篇 / 下一篇  2009-02-17 17:38:09 / 个人分类:qtp

很多时候,QTP对于模拟对象右击并选择某个弹出选项的操作识别率并不好。
个人总结了一些比较常见也比较有效的方法。


基本上QTP识别针对鼠标右击并选择的操作有三种方法:
针对任何语言都适用的
1 创建Wscript.Shell对象
2 创建Mercury.DeviceReplay对象
针对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的操作


TAG:

 

评分:0

我来说两句

我的栏目

日历

« 2024-05-14  
   1234
567891011
12131415161718
19202122232425
262728293031 

我的存档

数据统计

  • 访问量: 2477
  • 日志数: 4
  • 图片数: 1
  • 建立时间: 2009-02-16
  • 更新时间: 2009-02-23

RSS订阅

Open Toolbar