谁能告诉我如何在TestComplete中取消特殊字符的模拟?
我正在尝试向runas
窗口发送密码,例如:
hCmd.Keys(a_Password + "[Enter]")
其中hCmd
是runas
命令窗口的句柄。
但是,如果密码值包含任何特殊字符,如!
或^
,TestComplete将模拟Shift或Ctrl等键。
有没有办法通过TestComplete对密钥中的指定部分(例如密码前后的HTML标签)取消此类操作,以便所有字符都将按这些标签之间的方式键入?
您需要通过加倍来转义这些特殊字符:
!
→ !!
~
→ ~~
^
→ ^^
[
→ [[
这实际上在文档的密钥代码表中提到过。
如果要从外部源检索 a_Password
值,则只需在将其传递给 Keys
方法之前执行字符串替换即可。例如:
a_Password = a_Password.replace("!", "!!").replace("~", "~~").replace("^", "^^").replace("[", "[[");
// or
a_Password = a_Password.replace(/[!~^[]/g, "$&$&");
只是想知道Testcomplete是否为这种情况提供了任何解决方案?
字符串替换是我知道的唯一解决方案,而且非常简单。另请注意,仅当您使用 Keys
"键入"文本时,才需要这样做。使用 wText
或类似属性以编程方式设置文本时,无需转义这些特殊字符或以其他方式预处理文本。