3

我正在尝试使用 WScript.Shell SendKeys 方法来模拟从数字键盘发送按键。

我有一个应用程序,我正在编写使用 QTP 的自动化测试。它是一个基于 Web 浏览器的应用程序,输入内容是网页内的 Java 应用程序。输入仅接受来自数字键盘和 Enter 键的按键。

到目前为止,我正在使用此代码:

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,但没有详细说明。

提前致谢,

  • 布伦特
4

2 回答 2

3

您需要使用数字键盘的键码。

以下是它们的列表: http ://www.empirisoft.com/directrt/help/_helpcontents.htm?directrt_key_codes.htm

因此,要发送“123”,您需要执行以下操作:

objWsh.SendKeys chr(79) & chr(80) & chr(81) 
于 2008-11-04T16:20:53.067 回答
3

我没有代表评论上面说 objWsh.SendKeys chr(79) & chr(80) & chr(81) 的答案

但我不认为这是正确的

objWsh.SendKeys chr(79) & chr(80) & chr(81)
首先,它发送字母 O,P,Q 他想要数字,比如 1234567890

并且链接转到键盘扫描代码。我认为这些是为了知道按下了键盘上的哪个键。它们与 ascii 代码不同。
79,80,81是数字键盘/小键盘上某些数字的键盘扫描码。

但是,Chr 使用 ascii 代码。不是键盘扫描码。

此外,这里只是指定一个数字,因为它不是通过按键来完成的,所以它没有指定也不需要指定使用哪个键,因为没有使用键。

发送一些数字(从数字键盘),与从第一行发送密钥相同。你只是想发送一些号码。

如果他只想知道如何使用 sendkeys 发送数字,那么显然。

objWsh.SendKeys 12345 或 str="12345" objWsh.SendKeys str

但是,如果提问者没有意识到 objWsh.SendKeys 12345 会这样做,那么提问者可能只是感到困惑。我猜从绿色勾号中,他投了一个类似于 objWsh.SendKeys "OPQ" 的答案。

我知道这是一个老问题,但为了得到正确的问题和答案..

于 2010-07-08T08:48:06.903 回答