【发布时间】:2019-10-18 15:22:20
【问题描述】:
我开发了一个宏来填充网站中的字段,单击“验证”和“提交”按钮。
在我的机器上,企业版可以正常运行。我测试了很多次。
我将宏发送给具有播放器版(相同版本号)的现场用户。该宏贯穿登录过程并一直工作,直到它开始输入数据。当它运行下面突出显示的代码时,宏会清除网站并留下一些链接。
下面的代码用于更新第一个字段。它输入值,然后单击“ENTER”按钮。这个特定的网站此时需要一个“enter”或“tab”键来启动幕后验证。 (当它在我的机器上运行时,执行“ENTER”键后会弹出一条小验证消息 - 就像它应该的那样。播放器版不会发生这种情况。)
播放器版的几个不同的用户尝试了宏,并且发生了同样的事情;执行“ENTER”命令时,网站几乎变为空白。
我尝试了以下方法:
将代码注释掉 - 不起作用 将 0 更改为 * - 不起作用 将 ENTER 更改为 TAB - 不起作用 - 宏在 TAB 后输入 }我还查看了仿真。当我运行宏时,网站底部显示“Emulating IE 10”。当用户运行宏时,网站会显示“Emulating IE 11”。这可能是不同行为的原因吗?如果是这样,有没有办法以编程方式改变它?当用户运行宏时,有没有办法强制宏模拟 IE 10?我有两个他们使用的其他 iMacros,这在以前不是问题。
下面的提取代码用于确认已输入并验证了一个值,然后宏转到下一个字段。
IM = ""
IM = "CODE:"
IM = IM + "TAB T=2" + vbNewLine
IM = IM + "SET !TIMEOUT 1" + vbNewLine
IM = IM + "TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:editWarrantyform:repairOrderNumberId CONTENT=" & vRO(Y) + vbNewLine
iret = iim1.iimPlay(IM)
IM = ""
IM = "CODE:"
IM = IM + "TAB T=2" + vbNewLine
IM = IM + "SET !TIMEOUT 60" + vbNewLine
IM = IM + "DS CMD=KEY X=0 Y=0 CONTENT={ENTER}" + vbNewLine
iret = iim1.iimPlay(IM) **** MACRO ERRORS OUT WHEN THIS LINE IS EXECUTED
IM = ""
IM = "CODE:"
IM = IM + "TAB T=2" + vbNewLine
IM = IM + "SET !TIMEOUT 60" + vbNewLine
IM = IM + "TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:editWarrantyform:repairOrderNumberId EXTRACT=TXT" + vbNewLine
iret = iim1.iimPlay(IM)
vTmp = ""
vTmp = iim1.iimgetlastextract
vTmp = Replace(vTmp, "[EXTRACT]", "")
vTmp = Trim(vTmp)
“ENTER”命令在播放器版和企业版中的工作方式有什么不同吗?我在同一个宏中还有其他几个 iMacro 进程,现场用户说这些进程运行没有任何问题。我不认为“ENTER”命令用于任何其他进程。
【问题讨论】: