一、pyautogui簡介
PyAutoGUI是一款純python自動化GUI驅動程序,它可以模擬用戶在計算機上的輸入和輸出,模仿滑鼠和鍵盤的動作,以及操縱窗口和瀏覽器。PyAutoGUI是具有跨平台特性,支持Windows,Linux和Mac OS。
PyAutoGUI可以被用來解決一些普遍的問題,比如在一些已經開發好的應用程序中執行自動化測試、自動登錄、自動排版、自動化視頻遊戲、屏幕偵測、OCR等。
二、安裝和設置
安裝PyAutoGUI很簡單,在命令行鍵入以下命令即可:
pip install pyautogui
但是,在使用PyAutoGUI之前,我們需要首先在計算機上安裝一個Python已編譯模塊。對於基於Windows的系統,我們建議安裝pygame庫。如果正在使用基於Linux的系統,那麼需要安裝scrot程序。如果是基於MacOS的系統,那麼需要安裝Pillow庫。
三、滑鼠操作
1、移動滑鼠
在PyAutoGUI中,可以通過調用moveTo()方法來移動滑鼠。moveTo()方法有兩個參數,分別為x和y。x和y是一個像素的坐標。下面是一個示例:
import pyautogui
pyautogui.moveTo(100, 100, duration=2)
在這個示例中,滑鼠會移動到像素坐標(x=100,y=100)的位置,並且在2秒內完成移動。
2、向下滾動滑鼠輪
可以通過scroll()方法來向下滾動滑鼠輪。如下所示:
import pyautogui
# 移動滑鼠到位置(100,100)
pyautogui.moveTo(100, 100, duration=2)
# 向下滾動60次
pyautogui.scroll(-60)
在這個示例中,滑鼠會移動到像素坐標(x=100,y=100)的位置。一旦到達該位置,滑鼠將向下滾動滑鼠輪60次。
3、單擊滑鼠
單擊滑鼠可以使用click()方法。可以使用以下示例實現:
import pyautogui
# 移動滑鼠到位置(100,100)
pyautogui.moveTo(100, 100, duration=2)
# 單擊左鍵
pyautogui.click(button="left")
在此示例中,滑鼠首先將移動到像素坐標(x=100,y=100)的位置,一旦到達該位置,滑鼠將單擊左鍵。
4、雙擊滑鼠
雙擊可以通過調用doubleClick()方法實現,如下所示:
import pyautogui
# 移動滑鼠到位置(100,100)
pyautogui.moveTo(100, 100, duration=2)
# 雙擊左鍵
pyautogui.doubleClick(button="left")
在這個示例中,滑鼠會移動到像素坐標(x=100,y=100)的位置。一旦到達該位置,滑鼠將雙擊左鍵。
四、鍵盤操作
1、按鍵和按鍵組合
在PyAutoGUI中,我們可以使用typewrite()方法模擬鍵盤輸入。下面是一些示例:
import pyautogui
# 按下,釋放和輸入A
pyautogui.typewrite('A')
# 按下,釋放和輸入AB
pyautogui.typewrite(['A', 'B'])
# 按下shift鍵和數字鍵2鍵
pyautogui.typewrite(['shift', '2'])
# 按下ctrl鍵和c鍵
pyautogui.hotkey('ctrl', 'c')
在上面的示例中,分別實現了單個鍵、多個鍵同時按下和按鍵組合的功能。
2、鍵盤按鍵釋放
PyAutoGUI還允許我們方法鍵盤上的某個按鍵。需要使用以下示例:
import pyautogui
# 按下shift鍵和數字鍵2鍵
pyautogui.keyDown('shift')
pyautogui.press('2')
pyautogui.keyUp('shift')
在這個示例中,按下shift鍵和數字鍵2鍵,按下後釋放shift鍵。
五、屏幕偵測
屏幕偵測是指在屏幕上捕捉某個特定像素區域。PyAutoGUI的screenshot()函數可以幫助我們完成這項工作。以下是這個函數的示例:
import pyautogui
# 獲取整個屏幕的截圖並保存
im = pyautogui.screenshot()
im.save('screenshot.png')
# 獲取指定區域的截圖並保存
im = pyautogui.screenshot(region=(0, 0, 300, 400))
im.save('screenshot_region.png')
在這個示例中,我們分別捕獲了整個屏幕和指定區域的截圖。您可以通過指定region參數來設置指定區域的坐標和尺寸。
六、完整代碼示例
下面是一個根據微信應用程序的位置自動打開應用程序的示例:
import pyautogui
import time
# 運行微信應用程序
pyautogui.hotkey('win', 'r')
pyautogui.typewrite('wechat')
pyautogui.press('enter')
# 稍等一會並移動窗口
time.sleep(3)
wx_x, wx_y, wx_width, wx_height = pyautogui.locateOnScreen('wechat_icon.png')
wx_center_x = wx_x + wx_width / 2
wx_center_y = wx_y + wx_height / 2
pyautogui.moveTo(wx_center_x, wx_center_y)
pyautogui.click()
# 稍等一會並移動滑鼠
time.sleep(3)
pyautogui.moveTo(100, 100)
print('微信應用程序成功打開!')
七、結論
在開發過程中,我們經常遇到一些重複性的工作或自動化操作的需求,而PyAutoGUI能夠有效的解決這些問題。PyAutoGUI支持的功能非常豐富,我們可以使用它來模擬滑鼠和鍵盤動作,操縱窗口,捕捉屏幕段落和自動化一些常用的應用程序。
原創文章,作者:FLRGF,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/334624.html