我正在尝试使用WScript.Shell SendKeys方法来模拟从数字键盘发送按键。
我有一个应用程序,我正在编写使用QTP的自动化测试。它是一个基于Web浏览器的应用程序,输入到网页中的Java App中。输入仅接受来自数字键盘和输入键的按键。
到目前为止,我正在使用此代码:
Dim strInputKey
strInputKey = "{ENTER}"
Set objWsh = CreateObject("WScript.Shell")
Browser("Launch Browser").Page("Test Application").WebElement("Item ID").Click
objWsh.SendKeys strInputKey
这适用于发送Enter键,但我无法弄清楚是否有办法发送数字键。任何帮助将不胜感激。
我不确定是否有任何未记录的方法来实现这一点。我看过http://msdn.microsoft.com/en-us/library/8c6yea83(VS.85).aspx,但没有详细说明。
提前致谢,
答案 0 :(得分:3)
您需要使用数字键盘的密钥代码。
以下是它们的列表: http://www.empirisoft.com/directrt/help/_helpcontents.htm?directrt_key_codes.htm
所以要发送“123”,你需要这样做:
objWsh.SendKeys chr(79) & chr(80) & chr(81)
答案 1 :(得分:3)
我没有代表对上述答案发表评论 objWsh.SendKeys chr(79)& chr(80)&字符(81)
但我不认为这是正确的
objWsh.SendKeys chr(79)& chr(80)&字符(81)
首先,它发送字母O,P,Q
他想要数字,比如1234567890
并且链接转到键盘扫描码。我想这些是为了知道键盘上的键被按下了。它们与ascii代码不同。
79,80,81是数字键盘/小键盘上某些数字的键盘扫描码。
但是,使用ascii代码。不是键盘扫描码。
此外,仅指定一个数字,因为它不是通过按键来完成的,所以它没有指定并且不需要指定,这是使用了密钥,因为没有使用密钥。
要发送密钥,一些数字(来自数字键盘)与从顶行发送密钥相同。你只想发一些数字。
如果他想知道的是如何使用sendkeys发送数字,那么显然。
objWsh.SendKeys 12345 要么 STR = “12345” objWsh.SendKeys str
但如果提问者没有意识到objWsh.SendKeys 12345会这样做,那么也许提问者只会感到困惑。我猜从绿色标记中,他投了一个像objWsh.SendKeys“OPQ”的答案。
我知道这是一个老问题,但为了正确的问题和答案..