vbscript sendkeys 在系统重启后只工作一次

vbscript sendkeys works only once after system restart

我这里有一个奇怪的情况,我无法找出原因并修复。

我使用 HP UFT 11.52 编写了一个脚本,用于在 IE8 上测试 .net Web 应用程序

代码如下:

If Browser(x).Page(x).Frame(x).WebEdit(abc).Exist(0) Then
    Browser(x).Page(x).Frame(x).WebEdit(abc).Click
    Set objSSN=Createobject("Wscript.Shell")
    objSSN.SendKeys" "
    Set objSSN=Nothing
    Browser(x).Page(x).Frame(x).WebEdit(abc).Object.Focus()
    Browser(x).Page(x).Frame(x).WebEdit(abc).Set 100-10-1000
End If

当我 运行 启动我的 windows 笔记本电脑后的脚本时,这段代码 运行 没问题。如果我第二次运行相同的代码,代码将不会输入space因此不会输入SSN。现在需要输入 space,因为单击 webedit 将导致空白选择,因此如果我使用脚本输入内容,它会给出错误的数据。

我的队友在虚拟机上工作 运行 这些脚本在他的机器上 运行 没有问题。所以我怀疑在 IE 或 windows 某处有一些设置需要修改。

任何人都可以帮助我确定问题所在。

要使用 QTP 在文本框中输入 SSN,我们真的需要单击并聚焦吗?

下面的脚本应该没问题。

If Browser(x).Page(x).Frame(x).WebEdit(abc).Exist(0) Then
    Browser(x).Page(x).Frame(x).WebEdit(abc).Set "100-10-1000"
End If

不要发送 space,而是尝试更改 replay type to device,然后 Set 发送 space

If Browser(x).Page(x).Frame(x).WebEdit(abc).Exist(0) Then
    Setting.WebPackage("ReplayType") = 2 
    Browser(x).Page(x).Frame(x).WebEdit(abc).Set " " ' This may not be needed
    Browser(x).Page(x).Frame(x).WebEdit(abc).Set "100-10-1000"
    Setting.WebPackage("ReplayType") = 1 
End If