如何取消TestComplete工具中特殊字符的模拟键?
问题描述:
谁能告诉我如何取消TestComplete中特殊字符的模拟?如何取消TestComplete工具中特殊字符的模拟键?
我试图发送一个密码runas
窗口,如:
hCmd.Keys(a_Password + "[Enter]")
其中hCmd
对于runas
命令窗口句柄。
但是,如果密码值包含任何特殊字符,如!
或^
,TestComplete是模拟键Shift或Ctrl等。
有没有办法通过TestComplete在指定的部分来抵消这种操作如密码前后的HTML标签,以便所有字符都可以在这些标签之间键入?
答
你需要他们加倍逃避这些特殊字符:
!
→ !!
~
→ ~~
^
→ ^^
[
→ [[
这实际上是在documentation的关键代码表中提到的。
如果您检索从外部源的a_Password
值,然后简单地做一个字符串,它传递给Keys
方法前更换。例如:
a_Password = a_Password.replace("!", "!!").replace("~", "~~").replace("^", "^^").replace("[", "[[");
// or
a_Password = a_Password.replace(/[!~^[]/g, "$&$&");
只是好奇,想知道是否有任何解决方案通过Testcomplete为这样的场景提供?
字符串替换只是我意识到的解决方案,而且是一个非常简单的解决方案。还请注意,只有当您使用Keys
“键入”文本时才需要。当您使用wText
或类似属性以编程方式设置文本时,不需要转义那些特殊字符或以其他方式预处理文本。
Helen,但问题是我从外面传递参数a_Password,我不想用转义字符声明它。此外,让变量值声明保留转义字符并且有时也会引起误解,这看起来很尴尬 – svv 2011-04-06 17:10:07