如何取消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或类似属性以编程方式设置文本时,不需要转义那些特殊字符或以其他方式预处理文本。

+0

Helen,但问题是我从外面传递参数a_Password,我不想用转义字符声明它。此外,让变量值声明保留转义字符并且有时也会引起误解,这看起来很尴尬 – svv 2011-04-06 17:10:07