Вам нужно экранировать эти специальные символы, удвоив их:
!
& rarr; !!
~
& rarr; ~~
^
& rarr; ^^
[
& rarr; [[
Это на самом деле упоминается в таблице кодов ключей в документации .
Если вы извлекаете значение a_Password
из внешнего источника, просто выполните замену строки перед передачей ее методу Keys
. Например:
a_Password = a_Password.replace("!", "!!").replace("~", "~~").replace("^", "^^").replace("[", "[[");
// or
a_Password = a_Password.replace(/[!~^[]/g, "$&$&");
Просто любопытно узнать, есть ли какое-либо решение, предоставляемое Testcomplete для таких сценариев?
Замена строки - это единственное решение, о котором я знаю, и оно довольно простое. Также обратите внимание, что это необходимо, только когда вы «печатаете» текст, используя Keys
. Когда вы устанавливаете текст программно, используя wText
или аналогичные свойства, нет необходимости экранировать эти специальные символы или иным образом предварительно обрабатывать текст.