2013-07-26 3 views
2

У меня есть веб-приложение, которое я тестирую с помощью программного обеспечения HP UFT. В моем приложении есть текстовое поле с атрибутом onkeydown. Когда в текстовом поле нажата клавиша, вызывается функция, которая запускает различные действия в зависимости от того, какая клавиша была нажата. Меня интересует ключ ввода. Когда клавиша ввода нажата, строки создаются в форме. Как я могу имитировать нажатие клавиши ввода внутри поля?Как вы имитируете событие ввода клавиатуры в UFT

Я попытался

field1.Set Chr(13)

field1.FireEvent "onkeydown"

но это не вызывает событие.

Я пытаюсь использовать aviod с помощью команды SendKeys.

+0

Когда я нажимаю клавишу ввода и появляется предупреждение, я должен дать вам скрипку о том ...? Должен ли я? –

ответ

3

Если вы используете режим устройства воспроизведения (как описано в this answer) и отправить vbCRLF ваше приложение будет иметь возможность увидеть клавишу ввода.

Setting.WebPackage("ReplayType") = 2 ''# Changes to device mode 
Browser("Enter").Page("Enter").WebEdit("WebEdit").Set "a" & vbCRLF 

Это работает (на IE) для следующей страницы образца:

<!DOCTYPE html> 
<html> 
<head> 
<title>Enter</title> 
<script> 
function okd() { 
if (event.keyCode == 13) 
    alert("Got enter"); 
} 
</script> 
</head> 
<body> 
<textarea onkeydown="okd()"></textarea> 
</body> 
+0

Отлично. Мне не приходило в голову, что решающий повтор одинаково работает для событий клавиатуры. Теперь это имеет смысл. С этим изменением мои сценарии тестирования будут более надежными. Благодаря! – Diggs

+0

Есть ли последствия для этого? Я только что использовал его, чтобы обойти неприятную проблему ввода, которую я не мог решить, чтобы спасти свою жизнь. Использование этого разрешает, но мне интересно, нужно ли мне сразу же установить replayType на 1 сразу после этого для меня? – shicky

+1

Когда вы используете режим устройства, он перемещает мышь, поэтому, если вы пытаетесь использовать компьютер для чего-то еще при запуске теста, он будет мешать вам. Кроме того, если вы используете тест на удаленном компьютере без подключения дисплея (например, окно RDP минимизировано), то шаги устройства не будут работать. Кроме этого, я не знаю никаких других последствий. Возможно, режим устройства лучше подходит для функционального тестирования, поскольку он более точно имитирует действия реального пользователя. – Motti

0

WORKING FIDDLE

$(document).keyup(function (e) { 
    $("#my_id").keyup(function (e) { 
    if (e.keyCode == 13) { 
     alert("Enter Simulated!!!") 
     //your function goes here!!! 
    } 
}); 
    }); 

UPDATE: 2nd demo

1

Таковы некоторые методы, которые я попробовал для имитировать события клавиатуры и работал для меня ..

Set oShell = CreateObject("WScript.Shell") 

oShell.SendKeys "{TAB}"   ' Click Tab Key 
oShell.SendKeys "{ENTER}"   ' Click Enter\Return 

Также я использовал

Type micAltDwn + "RETURN" + micAltUp ' Click Tab Key 
Type micAltDwn + "TAB" + micAltUp ' Click Enter\Return 

Если вы хотите ввести символы

oShell.SendKeys "{h}"   ' Click h Key 
oShell.SendKeys "{i}"   ' Click i Key 

Type micAltDwn + "h" + micAltUp ' Click h Key 
Type micAltDwn + "i" + micAltUp ' Click i Key 

 Смежные вопросы

  • Нет связанных вопросов^_^