解决方法一:
最后找到了一种sendkeys的模拟键盘的操作方法。
Dim WshShell
Set Wscript=createobject("Wscript.shell")
Wscript.SendKeys"%{F4}"
Set Wscript=nothing
经过编辑脚本后,可以成功的回放选择菜单的动作和过程。
但是sendkeys有一个局限性,只能应用在该菜单有快捷方式的情况下。如果没有键盘快捷方式,该方法也不行。只能作为一种备用替代方案。
最终完美方案:
最后在开发人员的帮助下,找到了问题所在:
Window("COPS HK DEV1 (COPS) Y").Activate
Window("COPS HK DEV1 (COPS) Y").WinMenu("Menu").Select "<Item 1>;<Item 14>"
是winmenu的select方法的两种方式的选取。
select方法可以select a menu by name/select a menu by index两种方式。
换成by index方式后,并且前面先activate菜单所在的窗体,问题解决了。
可是QTP为什么会自动录制为select a menu by name的方式了,这两种方式的区别是什么了?具体使用中该怎么选取了?
问题及其解决貌似都很简单,解决问题能力太差,这么久才找到问题。可是还是不很明白以后遇见问题了,怎么去排查解决,为什么我就想不到了?