Python鍵鼠操作自動(dòng)化庫(kù)PyAutoGUI簡(jiǎn)介(小結(jié))
PyAutoGUI是一個(gè)Python語(yǔ)言的鍵鼠自動(dòng)化庫(kù),簡(jiǎn)單來(lái)說(shuō)和按鍵精靈的功能一樣。但是因?yàn)槭荘ython的類庫(kù),所以可以使用Python代碼配合一些其他類庫(kù)完成更加強(qiáng)大的功能。下面讓我為大家介紹一下吧。
安裝
從pip安裝即可。
pip install pyautogui
稍等一下安裝就完畢了。
使用介紹
簡(jiǎn)單介紹一下PyAutoGUI的函數(shù)以及使用方法。
鼠標(biāo)操作函數(shù)
操作鼠標(biāo)點(diǎn)擊的函數(shù)。
函數(shù) | 簡(jiǎn)單說(shuō)明 |
---|---|
move(x,y)、 moveTo(x,y) | 移動(dòng)鼠標(biāo),前者移動(dòng)相對(duì)位置,后者移動(dòng)到指定位置 |
click(x,y)、doubleClick、rightClick | 單擊/雙擊/右擊,無(wú)參版本在當(dāng)前位置點(diǎn)擊鼠標(biāo) |
drag(x,y)、dragTo(x,y) | 拖動(dòng)鼠標(biāo) |
mouseDown、mouseUp | 按下按鍵,松開按鍵 |
scroll | 向下滾動(dòng)鼠標(biāo)滾輪的函數(shù) |
鍵盤操作函數(shù)
操作鍵盤按鍵的函數(shù)。
函數(shù) | 簡(jiǎn)介 |
---|---|
press('left',press=3) | |
hotkey('ctrl','s') | 按下Ctrl+S組合鍵 |
keyDown、keyUp | 按下和松開鍵盤按鍵 |
提示框函數(shù)
PyAutoGUI可以顯示提示框,這時(shí)候程序會(huì)暫停運(yùn)行,直到用戶點(diǎn)擊提示框。
函數(shù) | 簡(jiǎn)介 |
---|---|
alert(text='',title='',button=['OK','Cancle']) | 顯示警告對(duì)話框 |
confirm() | 顯示確認(rèn)對(duì)話框 |
prompt() | 顯示提示對(duì)話框 |
password() | 顯示密碼輸入對(duì)話框 |
屏幕截圖和定位函數(shù)
截取屏幕的函數(shù),也可以從屏幕中尋找匹配的圖片,并返回其坐標(biāo)。你可以事先保存一些按鈕的截圖,然后通過(guò)這種方式定位按鈕的位置,然后點(diǎn)擊。
函數(shù) | 簡(jiǎn)介 |
---|---|
screenshot('image.png') | 保存截圖并返回截圖,無(wú)參版本直接返回截圖不保存 |
center('image.png') | 從屏幕上尋找圖片位置,返回框位置 |
locateOnScreen('img') | 從屏幕尋找圖片位置,直接返回坐標(biāo) |
簡(jiǎn)單例子
先來(lái)看看官網(wǎng)的畫圖例子,我把代碼稍微改了一下。運(yùn)行這個(gè)例子需要先打開一個(gè)畫圖窗口,并放到全屏,然后運(yùn)行Python代碼,迅速將畫圖程序切換到前臺(tái)。這樣就可以看到PyAutoGUI控制鼠標(biāo)來(lái)繪制精確的直線了。
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)
繪制出來(lái)的圖片應(yīng)該是這樣的。
如果要完成一些實(shí)際工作,難免會(huì)遇到識(shí)別點(diǎn)擊復(fù)雜樣式圖片的場(chǎng)景。前面提到了截圖和圖片識(shí)別可以比較好的解決這個(gè)問(wèn)題。這個(gè)例子需要先安裝OpenCV庫(kù)和opencv-python包,安裝完畢之后就可以運(yùn)行了。這里將win10計(jì)算器的幾個(gè)按鈕保存成圖片,然后用PyAutoGUI的圖片識(shí)別功能找到按鈕的坐標(biāo),這樣就可以無(wú)障礙的點(diǎn)擊按鈕,無(wú)需關(guān)心窗口的位置。特別提一點(diǎn),下面的confidence參數(shù)需要安裝了OpenCV才可以使用,它允許我們模糊匹配圖片。
import pyautogui import time time.sleep(3) # Windows計(jì)算器的按鈕截圖 five = '5.png' eight = '8.png' multiply = 'multiply.png' equals = 'equals.png' # 圖片識(shí)別和點(diǎn)擊的函數(shù) def find_and_click(image): x, y = pyautogui.locateCenterOnScreen(image, confidence=0.9) pyautogui.click(x, y) # 執(zhí)行5*8= find_and_click(five) find_and_click(multiply) find_and_click(eight) find_and_click(equals)
這個(gè)例子的截圖和代碼都在我的github上,歡迎大家查看。
https://github.com/techstay/python-study/tree/master/pyautogui-sample
到此這篇關(guān)于Python鍵鼠操作自動(dòng)化庫(kù)PyAutoGUI簡(jiǎn)介(小結(jié))的文章就介紹到這了,更多相關(guān)Python PyAutoGUI內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- python pyautogui手動(dòng)活動(dòng)(模擬鼠標(biāo)鍵盤)自動(dòng)化庫(kù)使用
- python?PyAutoGUI實(shí)現(xiàn)自動(dòng)化鼠標(biāo)鍵盤等常用操作
- Python PyAutoGUI實(shí)現(xiàn)自動(dòng)化任務(wù)應(yīng)用場(chǎng)景示例
- python自動(dòng)化神器pyautogui使用步驟
- python教程之利用pyautogui圖形自動(dòng)化擊敗重復(fù)性辦公任務(wù)
- python 利用PyAutoGUI快速構(gòu)建自動(dòng)化操作腳本
- python PyAUtoGUI庫(kù)實(shí)現(xiàn)自動(dòng)化控制鼠標(biāo)鍵盤
- Python pyautogui模塊實(shí)現(xiàn)鼠標(biāo)鍵盤自動(dòng)化方法詳解
- Python使用pyautogui模塊實(shí)現(xiàn)自動(dòng)化鼠標(biāo)和鍵盤操作示例
- Python PyAutoGUI模塊控制鼠標(biāo)和鍵盤實(shí)現(xiàn)自動(dòng)化任務(wù)詳解
- Windows自動(dòng)化Python pyautogui RPA操作實(shí)現(xiàn)
相關(guān)文章
Python使用jpype模塊調(diào)用jar包過(guò)程解析
這篇文章主要介紹了Python使用jpype模塊調(diào)用jar包過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07Python基礎(chǔ)教程之tcp socket編程詳解及簡(jiǎn)單實(shí)例
這篇文章主要介紹了Python基礎(chǔ)教程之tcp socket編程詳解及簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-02-02解決Numpy報(bào)錯(cuò):ImportError: numpy.core.multiarray faile
這篇文章主要介紹了解決Numpy報(bào)錯(cuò):ImportError: numpy.core.multiarray failed問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01Python中五種實(shí)現(xiàn)字符串反轉(zhuǎn)的方法
這篇文章主要介紹了Python中五種實(shí)現(xiàn)字符串反轉(zhuǎn)的方法,編寫一個(gè)函數(shù),其作用是將輸入的字符串反轉(zhuǎn)過(guò)來(lái)。下面文章關(guān)于其詳細(xì)介紹,需要的小伙伴可以參考一下2022-05-05Python3 shelve對(duì)象持久存儲(chǔ)原理詳解
這篇文章主要介紹了Python3 shelve對(duì)象持久存儲(chǔ)原理詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03詳解Python OpenCV圖像分割算法的實(shí)現(xiàn)
圖像分割是指根據(jù)灰度、色彩、空間紋理、幾何形狀等特征把圖像劃分成若干個(gè)互不相交的區(qū)域。本文就來(lái)和大家聊聊OpenCV的圖像分割算法及基于輪廓的字符分離,感興趣的可以了解一下2022-08-08Jupyter Notebook切換conda虛擬環(huán)境的實(shí)現(xiàn)步驟
本文主要介紹了Jupyter Notebook切換conda虛擬環(huán)境的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07