公司产品有个控件对象用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方法在相同控件中输入字符,完全没有问题啊(咦,好像方法名已经说明原因了)