天天看點

Python自動化測試系列[v1.0.0][PyUserInput模拟鍵盤]

PyUserInput安裝

在Python3.7版本下安裝PyUserInput需要先安裝PyHook,用浏覽器打開連結PyHook,這個頁面裡能找到很多Python的第三方擴充,讀者朋友不妨儲存起來。我們找到pyHook相容Python3.7版本的連結,直接點選連結即可下載下傳

然後啟動指令行并将指令行引導到下的檔案所在路徑下,執行指令pip install pyHook-1.5.1-cp37-cp37m-win_amd64.whl,如下執行過程則表示安裝成功。

C:\Users\Administrator\Downloads>pip install pyHook-1.5.1-cp37-cp37m-win_amd64.whl
Processing c:\users\administrator\downloads\pyhook-1.5.1-cp37-cp37m-win_amd64.whl
Installing collected packages: pyHook
Successfully installed pyHook-1.5.1
           

安裝完pyHook後,便可以安裝PyUserInput子產品,繼續在指令行執行pip install PyUserInput,如下所示則表示PyUserInput安裝成功。

C:\Users\Administrator\Downloads>pip install PyUserInput
Collecting PyUserInput
Usingcachedhttps://files.pythonhosted.org/packages/d0/09/17fe0b16c7eeb52d6c14e904596ddde82503aeee268330120b595bf22d7b/PyUserInput-0.1.11.tar.gz
Requirement already satisfied: pyHook in c:\python37\lib\site-packages (from PyUserInput) (1.5.1)
Requirement already satisfied: pywin32 in c:\python37\lib\site-packages (from PyUserInput) (223)
Installing collected packages: PyUserInput
Running setup.py install for PyUserInput ... done
Successfully installed PyUserInput-0.1.11
           

模拟鍵盤

啟動指令行工具,并進入到Python指令行,将pykeyboard類引入到環境中,然後調用PyKeyboard()函數,它傳回鍵盤對象,将其指派給pk

>>> import pykeyboard
>>> pk = pykeyboard.PyKeyboard()
           

當我們有了滑鼠和鍵盤對象後,就可以模拟一些實際的滑鼠鍵盤操作了,在鍵盤上敲字母”D”

pk.press_key('D')
pk.release_key('D')
           

我們看到敲擊一個字母需要使用兩個方法一個是press_key()另一個是release_key(),正如我們鍵盤上的操作按下按鈕和松開按鈕是一樣,我們還可以使用一個方法tap_key()代替press_key()和release_key()

pk.tap_key('D')
           

同時tap_key()還支援在指定間隔時間情況的多次敲擊,如下指令所示,其中10表示敲擊鍵盤的次數,而1表示敲擊間隔

pk.tap_key('D', 10, 1) 
           

并且還可以使用方法type_string()模拟敲擊整個字元串

pk.type_string('__davieyang__')
           

接下來看一下如何完成組合鍵和功能鍵的模拟,如下指令行所示,敲擊Ctrl+A。

pk.press_key(pk.control_key)
pk.tap_key(‘a’)
pk.release_key(pk.control_key)
           

敲擊功能鍵F5

pk.tap_key(pk.function_keys[5])
           
pk.tap_key(pk.numpad_keys['Home'])
           
pk.tap_key(pk.numpad_keys[3], n=8)
           
pk.press_keys([pk.control_key,'a'])