2013-07-26 92 views
2

我有一個正在使用HP UFT軟件進行測試的Web應用程序。在我的應用程序中, 有一個帶onkeydown屬性的文本字段。當在文本字段中按下某個鍵時,會調用一個函數,根據按下的鍵來觸發不同的操作。我對輸入鍵感興趣。當按下回車鍵時,表格中會創建行。我怎樣才能模擬在現場按下的輸入鍵?如何在UFT中模擬鍵盤輸入事件

我已經試過

field1.Set Chr(13)

field1.FireEvent "onkeydown"

但它不會觸發事件。

我正在嘗試使用SendKeys命令的aviod。

+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 
相關問題