Как аннулировать симуляцию ключей для специальных символов в инструменте TestComplete?

Может ли кто-нибудь сказать мне, как аннулировать симуляцию специальных символов в TestComplete?

Я пытаюсь отправить пароль в окно runas, например:

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

где hCmd — дескриптор командного окна runas.

Но если значение пароля содержит какие-либо специальные символы, такие как ! или ^, TestComplete имитирует клавиши Shift или Ctrl и т. д.

Есть ли способ аннулировать такую ​​операцию с помощью TestComplete для указанной части ключей, например тега HTML до и после пароля, чтобы все символы печатались так, как они находятся между этими тегами?


person svv    schedule 06.04.2011    source источник


Ответы (1)


Вам нужно избежать этих специальных символов, удвоив их:

! !!

~ ~~

^ ^^

[ [[

На самом деле это упоминается в таблице кодов ключей в документации.


Если вы получаете значение a_Password из внешнего источника, просто замените строку перед передачей ее методу Keys. Например:

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


Просто любопытно узнать, есть ли какое-либо решение, предоставляемое Testcomplete для таких сценариев?

Замена строки - это единственное известное мне решение, и оно довольно простое. Также обратите внимание, что это необходимо только тогда, когда вы «набираете» текст с помощью Keys. Когда вы устанавливаете текст программно, используя wText или подобные свойства, нет необходимости экранировать эти специальные символы или иным образом предварительно обрабатывать текст.

person Helen    schedule 06.04.2011
comment
Елена, но проблема в том, что я передаю параметр a_Password извне, где я не хочу объявлять его с помощью escape-символов. Также выглядит неудобным иметь объявленное значение переменной, сохраняющее escape-символы, а иногда и вводящее в заблуждение. - person svv; 06.04.2011