Python pyautogui模塊實(shí)現(xiàn)鼠標(biāo)鍵盤自動化方法詳解
本文簡單介紹如何使用 Python 的 pyautogui 模塊實(shí)現(xiàn)鼠標(biāo)的自動移動以及鍵盤的自行輸入. 該模塊不是 Python 自帶的, 因此執(zhí)行以下命令進(jìn)行安裝
# pyautogui模塊依賴image模塊,沒有image會報(bào)ImportError: No module named 'PIL'錯(cuò)誤 pip install image pip install pyautogui
官方文檔介紹:https://pyautogui.readthedocs.io/en/latest/
使用 pyautogui 模塊控制鼠標(biāo)的移動
size(): 用于獲取屏幕分辨率
import pyautogui print(pyautogui.size())
moveTo(): 用于鼠標(biāo)的移動
pyautogui.moveTo(100,100,duration=1)
這段代碼調(diào)用了 moveTo() 函數(shù), 其接受 x, y 坐標(biāo)作為參數(shù), 還有一個(gè)可選的持續(xù)時(shí)間參數(shù). 該函數(shù)將鼠標(biāo)指針從當(dāng)前位置移動到 (x, y) 坐標(biāo)指定的位置, 移動花費(fèi)的時(shí)間由持續(xù)時(shí)間參數(shù)指定. 保存并運(yùn)行該 Python 腳本, 你將看到, 鼠標(biāo)指針像被施了魔法一樣, 從當(dāng)前位置花 1 秒鐘時(shí)間移動到坐標(biāo)位置 (100, 100).
moveRel(): 根據(jù)當(dāng)前位置, 相對移動鼠標(biāo)指針
pyautogui.moveRel(0,300,duration=1)
這段代碼將鼠標(biāo)指針從原位置相對地移動 (0, 300) 個(gè)像素點(diǎn) (譯注: 即向下移動 300 像素). 比如說, 運(yùn)行代碼之前, 鼠標(biāo)指針在 (1000, 300), 那么代碼運(yùn)行之后, 鼠標(biāo)指針將移動到 (1000, 600), 耗時(shí) 1 秒.
position(): 獲取當(dāng)前鼠標(biāo)指針的位置
print(pyautogui.position())
輸出: 程序執(zhí)行時(shí)的鼠標(biāo)所在的位置坐標(biāo).
click(): 用于控制鼠標(biāo)點(diǎn)擊和拖拽
pyautogui.click(370,120)
在(370,120)的位置模擬鼠標(biāo)點(diǎn)擊,其中click還有一個(gè)參數(shù)動作button,默認(rèn)為'lest',當(dāng)button='right'時(shí),可rightClick()效果一樣(鼠標(biāo)右鍵點(diǎn)擊)
doubleClick() 雙擊
rightClick() 右擊
有兩個(gè)與鼠標(biāo)拖拽操作相關(guān)的函數(shù): dragTo 和 dragRel. 它們的行為與 moveTo 和 moveRel 類似, 區(qū)別在于拖拽操作在移動的過程中, 會保持鼠標(biāo)左鍵被按下.
該功能可用于不同的場景, 比如移動對話框,或在 Windows 的畫板程序中用鉛筆工具自動繪圖
import pyautogui import time time.sleep(5) # 5秒種時(shí)間切換到畫板程序 pyautogui.moveTo(200,200,duration=1) # 鼠標(biāo)移動到(200,200)的位置 pyautogui.dragRel(100,0,duration=1) pyautogui.dragRel(0,100,duration=1) pyautogui.dragRel(-100,0,duration=1) pyautogui.dragRel(0,-100,duration=1)
scroll(): 滾屏函數(shù)接受像素?cái)?shù)作為參數(shù), 并用給定的像素?cái)?shù)向上滾屏
pyautogui.scroll(200)
對選中的窗口進(jìn)行向上滾屏200個(gè)像素點(diǎn).當(dāng)值為負(fù)數(shù)時(shí),向下移動
typewrite(): 用于自動鍵入字符串, 只需將要鍵入的字符串傳遞給函數(shù)作為參數(shù)即可
pyautogui.click(100,200)
pyautogui.typewrite('hello word!')
假設(shè)文本區(qū)域位于屏幕 (100, 200) 的坐標(biāo)位置, 那么這段代碼將點(diǎn)擊文本區(qū)域, 激活它, 并鍵入'hello word!'
傳遞鍵名: 可以向 typywrite() 函數(shù)傳入分離的鍵名.
pyautogui.typewrite(['a','left','ctrlleft'])
這段代碼等價(jià)于: 鍵入 "a", 然后敲擊左方向鍵, 再敲擊左 ctrl 鍵.
熱鍵組合: hotkey() 可以模擬組合熱鍵, 比如: ctrl-c, ctrl-a, ctrl-v 等
pyautogui.hotkey('ctrlleft','v')
模擬ctrl-v,復(fù)制功能
pyautogui.hotkey('ctrl', 'shift', 'esc')
#等價(jià)于
pyautogui.keyDown('ctrl')
pyautogui.keyDown('shift')
pyautogui.keyDown('esc')
pyautogui.keyUp('esc')
pyautogui.keyUp('shift')
pyautogui.keyUp('ctrl')
press() :鍵盤功能按鍵
pyautogui.press('enter') # press the Enter key
pyautogui.press('f1') # press the F1 key
pyautogui.press('left') # press the left arrow key
消息彈窗函數(shù)
如果你需要消息彈窗,通過單擊OK暫停程序,或者向用戶顯示一些信息,消息彈窗函數(shù)就會有類似JavaScript的功能:
pyautogui.alert('這個(gè)消息彈窗是文字+OK按鈕') # 返回OK
pyautogui.confirm('這個(gè)消息彈窗是文字+OK+Cancel按鈕') # 返回OK 或 Cancel
pyautogui.prompt('這個(gè)消息彈窗是讓用戶輸入字符串,單擊OK') # 返回輸入的字符串
更多關(guān)于Python pyautogui模塊的使用方法請查看下面的相關(guān)鏈接
- python pyautogui手動活動(模擬鼠標(biāo)鍵盤)自動化庫使用
- python?PyAutoGUI實(shí)現(xiàn)自動化鼠標(biāo)鍵盤等常用操作
- Python PyAutoGUI實(shí)現(xiàn)自動化任務(wù)應(yīng)用場景示例
- python自動化神器pyautogui使用步驟
- python教程之利用pyautogui圖形自動化擊敗重復(fù)性辦公任務(wù)
- python 利用PyAutoGUI快速構(gòu)建自動化操作腳本
- python PyAUtoGUI庫實(shí)現(xiàn)自動化控制鼠標(biāo)鍵盤
- Python鍵鼠操作自動化庫PyAutoGUI簡介(小結(jié))
- Python使用pyautogui模塊實(shí)現(xiàn)自動化鼠標(biāo)和鍵盤操作示例
- Python PyAutoGUI模塊控制鼠標(biāo)和鍵盤實(shí)現(xiàn)自動化任務(wù)詳解
- Windows自動化Python?pyautogui?RPA操作實(shí)現(xiàn)
相關(guān)文章
Jupyter notebook設(shè)置背景主題,字體大小及自動補(bǔ)全代碼的操作
這篇文章主要介紹了Jupyter notebook設(shè)置背景主題,字體大小及自動補(bǔ)全代碼的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04
Python基礎(chǔ)教程之控制結(jié)構(gòu)詳解
Python中有三大控制結(jié)構(gòu),分別是順序結(jié)構(gòu)、分支結(jié)構(gòu)(選擇結(jié)構(gòu))以及循環(huán)結(jié)構(gòu),任何一個(gè)項(xiàng)目或者算法都可以使用這三種結(jié)構(gòu)來設(shè)計(jì)完成,這篇文章主要給大家介紹了關(guān)于Python基礎(chǔ)教程之控制結(jié)構(gòu)的相關(guān)資料,需要的朋友可以參考下2021-11-11
numpy庫與pandas庫axis=0,axis= 1軸的用法詳解
這篇文章主要介紹了numpy庫與pandas庫axis=0,axis= 1軸的用法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05

