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