51Testing软件测试论坛

标题: QTP9.2如何记录键盘的操作? [打印本页]

作者: luoxijin007    时间: 2007-9-17 17:36
标题: QTP9.2如何记录键盘的操作?
请问QTP9.2如何记录键盘的操作?发现在录制的过程中,需要在键盘中输入文字的地方都没有被录制下来.
在回放的过程中当然也没法在继续进行下去了.有谁知道的话,please tell me.thanks a lot.
作者: hsjzfling    时间: 2007-9-17 18:29
楼主是在哪里输入文字没有录制下来?WebElement?WebEdit?用Spy查看下那个输入文字地方是个什么对象吧~
如果不是Edit或者WebEdit,那么就使用wsh的sendkeys方法吧,有很多帖子都介绍过这种方法,在论坛中搜索wscript.shell 或者 .sendkeys即可
作者: walker1020    时间: 2007-9-17 18:44
先看看你要输入数据的对象的类型再说
作者: DeViLIvy    时间: 2007-9-17 19:57
录制的时候输入内容没有录制进去是你的对象识别有问题。
发送键盘消息方法:(QTP中按F1帮助,搜索SendKeys)
set WshShell = WScript.CreateObject("WScript.Shell")
         WshShell.Run "calc"
         WScript.Sleep 100
         WshShell.AppActivate "Calculator"
         WScript.Sleep 100
         WshShell.SendKeys "1{+}"
         WScript.Sleep 500
         WshShell.SendKeys "2"
         WScript.Sleep 500
         WshShell.SendKeys "~"
         WScript.Sleep 500
         WshShell.SendKeys "*3"
         WScript.Sleep 500
         WshShell.SendKeys "~"
         WScript.Sleep 2500
作者: 李靖之    时间: 2008-5-9 11:31
请问要是用wscript使用组合键应该怎么办?
例如:win+R="运行"
作者: heqingbluesky    时间: 2008-5-9 14:18
我记得可以用DevicePlay对象,这个对象好像有一个文档的,我可以给你看一段代码,这个是模拟Shift和Enter键的,具体的内容,你可以Google一下
=======================================
Option Explicit

Const VK_Shift=42, VK_Return=28

Dim DeviceReplay

Set DeviceReplay=CreateObject("Mercury.DeviceReplay")
SystemUtil.Run "notepad","","C:\",""
Window("nativeclass:=Notepad", "index:=0").Activate micLeftBtn
'**Typing upperclass
DeviceReplay.KeyDown VK_Shift
DeviceReplay.SendString("i love this game")
DeviceReplay.PressKey VK_Return
DeviceReplay.KeyUp VK_Shift
'**Typing lower class
DeviceReplay.SendString("i love this game")

Set DeviceReplay=Nothing
作者: 没有蛀牙    时间: 2008-5-9 16:54
恩,学到咯
作者: 李靖之    时间: 2008-5-12 11:14
原帖由 heqingbluesky 于 2008-5-9 14:18 发表
我记得可以用DevicePlay对象,这个对象好像有一个文档的,我可以给你看一段代码,这个是模拟Shift和Enter键的,具体的内容,你可以Google一下
================================= ...

呃~非常感谢您的提示,这段代码偶也有看到,不过如这段代码说的VK_SHIFT=42

那么就是说在QTP里,每一个键都有一个自己的值,但是不属于标准键盘里的WIN键是否有属于自己的键值呢!

偶已经得到LWIN=91,RWIN=92,可是这两个值不是QTP中的值,不知道有什么方法可以得到键值吗?




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2