QTP模擬滑鼠和鍵盤事件方法整理

2021-06-18 09:13:42 字數 2621 閱讀 7267

1、滑鼠事件

1.1 使用自帶的click方法

看qtp的幫助,每個物件都有自帶的click方法,通過其中第三個引數指定具體的滑鼠事件

例如:browser("new page").page("new page").webelement("html tag:=form").click

0,0,micrightbtn

注意click方法的前兩個引數是相對座標,即相對於物件控制項左上角的座標。

然而執行指令碼時常常發現右鍵功能無法回放。這需要通過設定回放級別解決。例如:

setting.webpackage("replaytype") = 2

browser("new page").page("new page").webelement("html tag:=form").click

0,0,micrightbtn

setting.webpackage("replaytype") = 1

1.2 使用自帶的fireevent方法

具體使用參考qtp的幫助吧,需要提醒一下,右鍵選單的彈出對應的是"oncontextmenu"事件,這個幫助裡沒有提到,當然依賴於開發的**實現。

1.3 使用mercury.devicereplay

set devreplay = createobject("mercury.devicereplay")

devreplay.mouseclick absx+4,absy+4,2

1.4 使用windows底層的mouse_event

如果上面的方法仍然不管用,就要採用更底層的方法了。不過這種方式不推薦,因為mouse_event識別的是絕對座標,你還需要在呼叫 mouse_event前獲取物件的絕對座標。需要說明的是,如果沒有使用mouseeventf_absolute,函式預設的是相對於滑鼠當前位置的點,用0,0表示,會被認為是當前滑鼠所在的點。

extern.declare micvoid, "mouse_event", "user32.dll", "mouse_event", micbyte,micbyte,micdword,miculong

extern.mouse_event mouseeventf_rightdown,0,0,0

2、鍵盤事件

2.1 sendkeys (重點講下,因為之前沒有接觸過)

最常用的模擬鍵盤操作的事件就是sendkeys了,具體說明一樣參考qtp的幫助。

需要說明的是qtp幫助中的例子,需要做一些調整,qtp中執行不需要顯示指定wscrīpt執行shell命令,否則會報錯。正確的例子(先開啟大些開啟的燈,3秒後自動關閉,

非常形象的例子)如下:

setwshshell =createobject("wscript.shell") 

'這裡要特別注意不能寫成wscrīpt.shell,否則會報「activex 部件不能建立物件: 'wscrīpt.shell'」錯誤。

wshshell.sendkeys ""

wait3

wshshell.sendkeys ""

當然我們也可以先定義乙個function,然後每次都呼叫這個function。

public functionsendkeys(stringword)

dim wsh

on error resume next

setwsh =createobject("wscript.shell")

wsh.sendkeys stringword

setwsh =nothing

end function

sendkeys ("") '這裡注意括號中的寫法

wait

3

sendkeys ("") '這裡注意括號中的寫法

2.2 mercury.devicereplay

set devreplay = createobject("mercury.devicereplay")

devreplay.sendstring("a")

2.3 使用windows底層的keybd_event

extern.declare micvoid, "keybd_event", "user32.dll", "keybd_event", micbyte,micbyte,micdword,miculong

extern.keybd_event 42,0,0,0

注意一下這裡的第乙個引數是10進製的。

sendkeys的使用要方便一點,但是穩定性不如後者,

function rtclick( obj )

absx = obj.getroproperty("abs_x")

absy = obj.getroproperty("abs_y")

set devreplay = createobject("mercury.devicereplay")

devreplay.mouseclick absx+4,absy+4,2

set devreplay = nothing

end function

QTP模擬滑鼠和鍵盤事件整理

1 滑鼠事件 1.1 使用自帶的click方法 看qtp的幫助,每個物件都有自帶的click方法,通過其中第三個引數指定具體的滑鼠事件 例如 browser new page page new page webelement html tag form click 0,0,micrightbtn 注...

模擬鍵盤事件與滑鼠事件

模擬事件 title head body button id mouseeventtrigger 鍵盤模擬按鈕事件 button button id keyboardeventtrigger 按鈕模擬鍵盤事件 button body script varbtn1 document.getelemen...

C 模擬鍵盤滑鼠事件

1.模擬鍵盤事件 system.windows.forms.sendkeys 以下是 sendkeys 的一些特殊鍵 表。鍵 backspace 或 break caps lock del 或 delete 或 down arrow 下箭頭鍵 end enter 或 esc help home in...