我有一個正在使用HP UFT軟件進行測試的Web應用程序。在我的應用程序中, 有一個帶onkeydown屬性的文本字段。當在文本字段中按下某個鍵時,會調用一個函數,根據按下的鍵來觸發不同的操作。我對輸入鍵感興趣。當按下回車鍵時,表格中會創建行。我怎樣才能模擬在現場按下的輸入鍵?如何在UFT中模擬鍵盤輸入事件
我已經試過
field1.Set Chr(13)
field1.FireEvent "onkeydown"
但它不會觸發事件。
我正在嘗試使用SendKeys命令的aviod。
我有一個正在使用HP UFT軟件進行測試的Web應用程序。在我的應用程序中, 有一個帶onkeydown屬性的文本字段。當在文本字段中按下某個鍵時,會調用一個函數,根據按下的鍵來觸發不同的操作。我對輸入鍵感興趣。當按下回車鍵時,表格中會創建行。我怎樣才能模擬在現場按下的輸入鍵?如何在UFT中模擬鍵盤輸入事件
我已經試過
field1.Set Chr(13)
field1.FireEvent "onkeydown"
但它不會觸發事件。
我正在嘗試使用SendKeys命令的aviod。
如果使用設備重放模式(如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>
完美。對我而言,鍵盤事件的重放決定性重播不會發生。現在有道理。這個變化使我的測試腳本更加強大。謝謝! – Diggs
這是否有影響?我只是用它來解決一個我無法解決的難題,以挽救我的生命。使用這個解決了它,但我想知道是否需要將replayType重新設置爲1後,這適用於我? – shicky
當您使用設備模式時,它會移動鼠標,所以如果您在運行測試時嘗試使用計算機進行其他操作,它將會妨礙您的工作。另外,如果您在沒有連接顯示器的遠程機器上運行測試(例如,RDP窗口最小化),那麼設備步驟將不起作用。除此之外,我不知道任何其他影響。可以說設備模式更適合功能測試,因爲它更精確地模仿真實用戶的行爲。 – Motti
$(document).keyup(function (e) {
$("#my_id").keyup(function (e) {
if (e.keyCode == 13) {
alert("Enter Simulated!!!")
//your function goes here!!!
}
});
});
UPDATE:2nd demo
這些都是一些方法我已經嘗試了模擬鍵盤事件,併爲我工作..
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
當我按下輸入和警告框應該彈出...我可以給你一個小提琴...我應該嗎? –