0

谁能告诉我如何取消 TestComplete 中特殊字符的模拟?

我正在尝试向runas窗口发送密码,例如:

hCmd.Keys(a_Password + "[Enter]")

命令窗口hCmd的句柄在哪里。runas

但是如果密码值包含任何特殊字符,例如!or ^,TestComplete 正在模拟 Shift 或 Ctrl 等键。

有没有办法通过 TestComplete 对密码之前和之后的 HTML 标记等键中的指定部分取消此类操作,以便在这些标记之间键入所有字符?

4

1 回答 1

0

您需要通过加倍来转义这些特殊字符:

!!!

~~~

^^^

[[[

这实际上是在文档中的关键代码表中提到的。


如果您a_Password要从外部源检索值,则只需在将其传递给Keys方法之前进行字符串替换。例如:

a_Password = a_Password.replace("!", "!!").replace("~", "~~").replace("^", "^^").replace("[", "[[");
// or
a_Password = a_Password.replace(/[!~^[]/g, "$&$&");


只是想知道 Testcomplete 是否为此类场景提供了任何解决方案?

字符串替换是我所知道的唯一解决方案,并且是一个非常简单的解决方案。另请注意,仅当您使用“键入”文本时才需要这样做Keys。当您使用wText或类似属性以编程方式设置文本时,无需转义这些特殊字符或以其他方式预处理文本。

于 2011-04-06T15:52:40.297 回答