查看完整版本: 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

恩,学到咯:lol

李靖之 2008-5-12 11:14

[quote]原帖由 [i]heqingbluesky[/i] 于 2008-5-9 14:18 发表 [url=http://bbs.51testing.com/redirect.php?goto=findpost&pid=965283&ptid=90868][img]http://bbs.51testing.com/images/common/back.gif[/img][/url]
我记得可以用DevicePlay对象,这个对象好像有一个文档的,我可以给你看一段代码,这个是模拟Shift和Enter键的,具体的内容,你可以Google一下
================================= ... [/quote]
呃~非常感谢您的提示,这段代码偶也有看到,不过如这段代码说的VK_SHIFT=42

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

偶已经得到LWIN=91,RWIN=92,可是这两个值不是QTP中的值,不知道有什么方法可以得到键值吗?
页: [1]
查看完整版本: QTP9.2如何记录键盘的操作?