UFT中通过方向键选择下拉菜单第X项:按键拼接失效求助
UFT非标准下拉菜单快速选第X项的按键拼接方案
你之前直接拼接"micUp""micDown"这类字符串无效,核心原因是micUp/micDown是UFT内置的数值常量,并非可被Key方法识别的按键指令文本。Win().Key仅支持两种有效输入格式:一是单独调用UFT内置按键常量,二是使用带大括号的按键代码字符串(可组合多个指令)。
要实现一次性发送所有按键、提升操作速度,正确做法是用按键代码字符串拼接,具体实现如下:
示例代码
Sub SelectDropdownItem(X) Dim topUpTimes, keySeq topUpTimes = 10 ' 设足够多的上箭头次数,确保回到下拉菜单顶部 ' 拼接回到顶部的上箭头指令 keySeq = String(topUpTimes, "{UP};") ' 拼接下箭头指令:X=1时无需下移,直接回车 If X > 1 Then keySeq = keySeq & String(X-1, "{DOWN};") End If ' 拼接回车确认指令 keySeq = keySeq & "{ENTER}" ' 移除最后多余的分号(若存在) If Right(keySeq, 1) = ";" Then keySeq = Left(keySeq, Len(keySeq)-1) End If ' 执行按键操作 Win("你的窗口标识").Key keySeq End Sub
补充说明
- 若不确定回到顶部需要的上箭头次数,可适当调大
topUpTimes(比如设为20),覆盖最长下拉列表的情况 - 极少部分非标准控件可能需要按键间微小延迟,若一次性发送失效,可在拼接时加入
{DELAY=10}(延迟10毫秒),例如keySeq = keySeq & "{DOWN};{DELAY=10}"
内容的提问来源于stack exchange,提问作者seestrahseestrah
相关产品推荐
相关产品推荐

