模擬鼠標鍵盤操作PyUserInput

模擬鼠標操作是模擬鼠標點擊和鍵盤輸入的操作,UI自動化測試中非常實用。在Web UI、App UI、WinApp UI自動化測試講解中藉助Selenium和Appium框架下ActionChains、TouchAction、MouseButton等類已經介紹瞭如何模擬鼠標和鍵盤操作。本文將爲大家介紹一個獨立的、任何時候都可以模擬鼠標和鍵盤操作的Python第三方庫PyMouse和PyKeyboard。
PyMouse和PyKeyboard庫都集成在PyUserInput庫中,支持在Linux、Mac、Windows系統中使用,但是不同的操作系統使用時依賴庫是不同的,Linux系統下依賴Xlib庫、Mac系統下依賴Quartz和AppKit庫、Windows系統下依賴pywin32和pyHook庫。在安裝上和Python其他第三方庫安裝相同,命令行工具中輸入pip install PyUserInput庫即可完成安裝。

鼠標操作

鼠標操作種類繁多,例如左鍵單擊、鼠標移動、鼠標拖拽、滾動、鼠標按下、鼠標釋放等。PyMouse類下提供的方法如下:
 drag(x, y):鼠標拖拽到x,y座標。
 move(x, y):鼠標移動到x,y座標。
 position():返回鼠標當前x,y座標。
 press(x, y, button=1):鼠標在x,y座標處按下不鬆開,參數button表示按鍵。1代表左鍵、2代表中間鍵、3代表右鍵。
 release(x, y, button=1):鼠標在x,y座標處鬆開,參數button表示按鍵。1代表左鍵、2代表中間鍵、3代表右鍵。
 scroll(vertical=None, horizontal=None, depth=None):鼠標滾動。支持垂直、水平和深度三個方向。
 click(x, y, button=1, n=1):鼠標在x,y座標處點擊。參數button表示按鍵,1代表左鍵、2代表中間鍵、3代表右鍵,參數n表示點擊幾次。
例如鼠標在座標x=100,y=100處左鍵點擊兩次,代碼如下:

# pymouse_demo.py
from pymouse import PyMouse

# 實例化鼠標對象
mouse = PyMouse()
# x=100, y=100 處左鍵點擊兩次
mouse.click(x=100, y=100, button=1, n=2)

鍵盤操作

鍵盤操作種類也有很多種,例如按下某鍵、釋放某鍵、發送組合鍵等。PyKeyboard類下提供的方法如下:
 press_key(character):按下character鍵。
 release_key(character):釋放character鍵。
 tap_key(character):輕擊character鍵。
 tap_key(character,n,interval):連續輕擊character鍵。參數n表示連續輕擊次數,參數interval表示兩次輕擊之間的間隔時間。例如tap_key('l',n=2,interval=5)。
 type_string(char_string):發送字符串。
 PyKeyboard也提供了特殊鍵,部分特殊鍵如下:
 alt_key:Alt鍵。
 tab_key:Tab鍵。
 backspace_key:BackSpace鍵。
 return_key:Return鍵。
 enter_key:Enter鍵。
 shift_l_key:Shift+L鍵。
 alt_r_key:Alt+R鍵。
 control_r_key:Control+R鍵。
 cancel_key:Cancel鍵。
 function_keys[n]:function區域鍵,例如F5鍵就是function_keys[5]。
 numpad_keys['Home']:數字鍵盤鍵,例如Home鍵就是numpad_keys['Home'],數字鍵盤5鍵就是numpad_keys[5]。
例如發送字符串“Hello World!”和發送Alt+Tab組合鍵,代碼如下:

# pykeyboard_demo.py
from pykeyboard import PyKeyboard

# 實例化鍵盤對象
keyboard = PyKeyboard()
# 發送 Hello World! 字符串
keyboard.type_string('Hello World!')
	
# 發送 Alt + Tab 組合鍵
keyboard.press_key(keyboard.alt_key)
keyboard.tap_key(keyboard.tab_key)
keyboard.release_key(keyboard.alt_key)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章