Javascript 如何在UFT中模拟键盘输入事件

Javascript 如何在UFT中模拟键盘输入事件,javascript,qtp,hp-uft,Javascript,Qtp,Hp Uft,我有一个web应用程序,正在使用HP的UFT软件进行测试。在我的申请中, 有一个具有onkeydown属性的文本字段。当在文本字段中按下一个键时,将调用一个函数,该函数根据按下的键触发不同的操作。我对回车键感兴趣。按下enter键时,将在表单中创建行。如何在字段中模拟按下enter键 我试过了 字段1.设置Chr13 field1.FireEvent onkeydown 但它不会触发事件 我正在使用SendKeys命令尝试aviod 更新: 更新:如果使用中所述的设备重播模式并发送vbCRLF,

我有一个web应用程序,正在使用HP的UFT软件进行测试。在我的申请中, 有一个具有onkeydown属性的文本字段。当在文本字段中按下一个键时,将调用一个函数,该函数根据按下的键触发不同的操作。我对回车键感兴趣。按下enter键时,将在表单中创建行。如何在字段中模拟按下enter键

我试过了

字段1.设置Chr13

field1.FireEvent onkeydown

但它不会触发事件

我正在使用SendKeys命令尝试aviod

更新:

更新:

如果使用中所述的设备重播模式并发送vbCRLF,则应用程序将能够看到enter键

Setting.WebPackage("ReplayType") = 2 ''# Changes to device mode
Browser("Enter").Page("Enter").WebEdit("WebEdit").Set  "a" & vbCRLF
这在IE上适用于以下示例页面:

<!DOCTYPE html>
<html>
<head>
<title>Enter</title>
<script>
function okd() {
if (event.keyCode == 13)
    alert("Got enter");
}
</script>
</head>
<body>
<textarea onkeydown="okd()"></textarea>
</body>
如果使用中所述的设备重播模式并发送vbCRLF,则应用程序将能够看到enter键

Setting.WebPackage("ReplayType") = 2 ''# Changes to device mode
Browser("Enter").Page("Enter").WebEdit("WebEdit").Set  "a" & vbCRLF
这在IE上适用于以下示例页面:

<!DOCTYPE html>
<html>
<head>
<title>Enter</title>
<script>
function okd() {
if (event.keyCode == 13)
    alert("Got enter");
}
</script>
</head>
<body>
<textarea onkeydown="okd()"></textarea>
</body>

这些是我尝试过的一些模拟键盘事件的方法,对我来说很有用

Set oShell = CreateObject("WScript.Shell")

oShell.SendKeys "{TAB}"           ' Click Tab Key
oShell.SendKeys "{ENTER}"         ' Click Enter\Return
我也用过

Type micAltDwn + "RETURN" + micAltUp ' Click Tab Key
Type micAltDwn + "TAB" + micAltUp    ' Click Enter\Return
如果你想输入字符

 oShell.SendKeys "{h}"           ' Click h Key
 oShell.SendKeys "{i}"           ' Click i Key

 Type micAltDwn + "h" + micAltUp    ' Click h Key
 Type micAltDwn + "i" + micAltUp    ' Click i Key

这些是我尝试过的一些模拟键盘事件的方法,对我来说很有用

Set oShell = CreateObject("WScript.Shell")

oShell.SendKeys "{TAB}"           ' Click Tab Key
oShell.SendKeys "{ENTER}"         ' Click Enter\Return
我也用过

Type micAltDwn + "RETURN" + micAltUp ' Click Tab Key
Type micAltDwn + "TAB" + micAltUp    ' Click Enter\Return
如果你想输入字符

 oShell.SendKeys "{h}"           ' Click h Key
 oShell.SendKeys "{i}"           ' Click i Key

 Type micAltDwn + "h" + micAltUp    ' Click h Key
 Type micAltDwn + "i" + micAltUp    ' Click i Key

当我按回车键时,警报框会弹出…我可以给你一把小提琴…我应该吗?当我按回车键时,警报框会弹出…我可以给你一把小提琴…我应该吗?很好。我没有想到decive replay对键盘事件的工作方式是相同的。现在有道理了。我的测试脚本将更加健壮。谢谢这有什么影响吗?我只是用它来解决一个棘手的问题,我无法解决它来挽救我的生命。使用此选项可以解决问题,但我想知道是否需要在对我有效后立即将replayType设置回1?当您使用设备模式时,它会移动鼠标,因此如果您试图在运行测试时使用计算机进行其他操作,它将妨碍您。此外,如果在未连接显示器的远程机器上运行测试,例如RDP窗口最小化,则设备步骤将不起作用。除此之外,我不知道还有什么其他含义。可以说,设备模式更适合功能测试,因为它更准确地模拟真实用户的动作。完美。我没有想到decive replay对键盘事件的工作方式是相同的。现在有道理了。我的测试脚本将更加健壮。谢谢这有什么影响吗?我只是用它来解决一个棘手的问题,我无法解决它来挽救我的生命。使用此选项可以解决问题,但我想知道是否需要在对我有效后立即将replayType设置回1?当您使用设备模式时,它会移动鼠标,因此如果您试图在运行测试时使用计算机进行其他操作,它将妨碍您。此外,如果在未连接显示器的远程机器上运行测试,例如RDP窗口最小化,则设备步骤将不起作用。除此之外,我不知道还有什么其他含义。可以说,设备模式更适合功能测试,因为它更准确地模拟真实用户的动作。