Python鍵鼠操做自動化庫PyAutoGUI簡介

PyAutoGUI是一個Python語言的鍵鼠自動化庫,簡單來講和按鍵精靈的功能同樣。可是由於是Python的類庫,因此可使用Python代碼配合一些其餘類庫完成更增強大的功能。下面讓我爲你們介紹一下吧。python

安裝

從pip安裝便可。nginx

pip install pyautogui

稍等一下安裝就完畢了。git

使用介紹

簡單介紹一下PyAutoGUI的函數以及使用方法。github

鼠標操做函數

操做鼠標點擊的函數。swift

函數 簡單說明
move(x,y)、 moveTo(x,y) 移動鼠標,前者移動相對位置,後者移動到指定位置
click(x,y)、doubleClick、rightClick 單擊/雙擊/右擊,無參版本在當前位置點擊鼠標
drag(x,y)、dragTo(x,y) 拖動鼠標
mouseDown、mouseUp 按下按鍵,鬆開按鍵
scroll 向下滾動鼠標滾輪的函數

鍵盤操做函數

操做鍵盤按鍵的函數。ruby

函數 簡介
press('left',press=3)  
hotkey('ctrl','s') 按下Ctrl+S組合鍵
keyDown、keyUp 按下和鬆開鍵盤按鍵

提示框函數

PyAutoGUI能夠顯示提示框,這時候程序會暫停運行,直到用戶點擊提示框。ide

函數 簡介
alert(text='',title='',button=['OK','Cancle']) 顯示警告對話框
confirm() 顯示確認對話框
prompt() 顯示提示對話框
password() 顯示密碼輸入對話框

屏幕截圖和定位函數

截取屏幕的函數,也能夠從屏幕中尋找匹配的圖片,並返回其座標。你能夠事先保存一些按鈕的截圖,而後經過這種方式定位按鈕的位置,而後點擊。函數

函數 簡介
screenshot('image.png') 保存截圖並返回截圖,無參版本直接返回截圖不保存
center('image.png') 從屏幕上尋找圖片位置,返回框位置
locateOnScreen('img') 從屏幕尋找圖片位置,直接返回座標

簡單例子

先來看看官網的畫圖例子,我把代碼稍微改了一下。運行這個例子須要先打開一個畫圖窗口,並放到全屏,而後運行Python代碼,迅速將畫圖程序切換到前臺。這樣就能夠看到PyAutoGUI控制鼠標來繪製精確的直線了。ui

import pyautogui
import time time.sleep(3) distance = 100 pyautogui.moveTo(400, 300) while distance > 0: pyautogui.drag(distance, 0, duration=0.1) distance -= 5 pyautogui.drag(0, distance, duration=0.1) pyautogui.drag(-distance, 0, duration=0.1) distance -= 5 pyautogui.drag(0, -distance, duration=0.1)

繪製出來的圖片應該是這樣的。spa

若是要完成一些實際工做,不免會遇到識別點擊複雜樣式圖片的場景。前面提到了截圖和圖片識別能夠比較好的解決這個問題。這個例子須要先安裝OpenCV庫和opencv-python包,安裝完畢以後就能夠運行了。這裏將win10計算器的幾個按鈕保存成圖片,而後用PyAutoGUI的圖片識別功能找到按鈕的座標,這樣就能夠無障礙的點擊按鈕,無需關心窗口的位置。特別提一點,下面的confidence參數須要安裝了OpenCV纔可使用,它容許咱們模糊匹配圖片。

import pyautogui
import time time.sleep(3) # Windows計算器的按鈕截圖 five = '5.png' eight = '8.png' multiply = 'multiply.png' equals = 'equals.png' # 圖片識別和點擊的函數 def find_and_click(image): x, y = pyautogui.locateCenterOnScreen(image, confidence=0.9) pyautogui.click(x, y) # 執行5*8= find_and_click(five) find_and_click(multiply) find_and_click(eight) find_and_click(equals)

這個例子的截圖和代碼都在個人github上,歡迎你們查看。

https://github.com/techstay/python-study/tree/master/pyautogui-sample
相關文章
相關標籤/搜索