QTP模拟键盘操作

公司产品有个控件对象用Set方法赋值无效     
但用手工操作确实是输入字符形式的操作     
想了想既然直接赋值无效,那我就模拟键盘操作来实现字符输入     
具体步骤如下:   
1. 让这个控件获得焦点,即光标落到这个控件中   
2. 摸拟键盘操作完成字符输入   


第1步还好,调用Object.focus即可(若无效,则也可用Click)   
问题就是第二步,怎么实现模拟键盘   
遂百度之.    
解决方案如下:   
1. Type方法 (公司产品是Web产品,没有Type方法. Pass)   
2. 调用WScript.Shell对象的SendKeys方法 (尝试后无效. Pass)   
3. 调用QTP隐藏神器Mercury.DeviceReplay的SendString方法 (有效)   
4. 调用Windows API (第三种方法已有效,未尝试,有兴趣的同学可以试一下)   


附:Mercury.DeviceReplay的使用方法   
```
Set device = createObject("Mercury.DeviceReplay")
device.sendString "theContent"
```
当然,Mercury.DeviceReplay还有很多其它方法,如:PressKey,PressKeys,KeyUp和KeyDown   

再附:   
尼玛要是用Selenium就没这么麻烦   
尝试用Selenium中的send_keys方法在相同控件中输入字符,完全没有问题啊(咦,好像方法名已经说明原因了)   
posted @ 2013-11-27 21:04  _漏斗  阅读(848)  评论(0编辑  收藏  举报