Python 編程快速上手 第十八章 用 GUI 自動化控制鍵盤和鼠標
前言
這一章節講述了如何實現 GUI 自動化,首先講了一些處理異常狀況的方法,然後是關於 GUI 自動化的內容,主要有三個部分:
- 控制鼠標
- 圖像識別
- 控制鍵盤
下面引用一段話:
請將 GUI 自動化看成對一個機械臂編程。你可以對機械臂編程,讓它敲鍵盤或移動鼠標。對於涉及許多無腦點擊或填表的任務。這種技術特別有用。
處理異常的辦法
方法一:通過註銷關閉所有程序:
Windows/Linux:Ctrl+Alt+Del
Mac OS:cmd+Shift+Option+Q
方法二:設置 pyautogui 的暫停
格式:pyautogui.PAUSE = 1.5
功能:將該變量設置為要暫停的秒數,在每次進行完函數調用之後暫停這段秒數的時間
方法三:pyautogui 自動防故障功能:
格式:pyautogui. FAILSAFE = True
功能:將鼠標移到屏幕的左上角,將觸發pyautogui.FailSafeException異常。
禁用:可以讓 pyautogui. FAILSAFE = False, 禁止使用這項功能。
控制鼠標
預備知識:
- 屏幕的坐標表示法。
- 可通過 pyautogui.size() 返回計算機的屏幕分辨率。
- PyAutoGUI 函數中,有一個 duirantion 關鍵字,可以指定為函數的可選參數,表示其進行動作的時間。
移動鼠標
格式:
絕對位置:pyautogui.moveTo(x, y)
相對於目前的位置:pyautogui.moveRel(x, y)
其他:
獲得鼠標絕對位置:格式:pyautogui.position()
點擊鼠標
格式:
pyautogui.click(x, y, button =‘left‘)
功能:
使用 button 的參數模擬鼠標點擊 (x,y) 處,button 參數可為 ‘left‘,‘middle‘ 和 ‘right‘, 是一個可選值,默認為左鍵。
其他:
- 按下鼠標按鍵:pyautogui.mouseDown()
- 松開鼠標按鍵:pyautogui.mouseUp()
- 雙擊鼠標左鍵:pyautogui.doubleClick()
- 雙擊鼠標右鍵:pyautogui.rightClick()
- 雙擊鼠標中鍵:pyautogui.middleClick()
拖動鼠標
格式:
絕對坐標拖動:pyautogui.dragTo(x, y)
相對當前坐標拖動:pyautogui.dragRel(x, y)
功能:
進行拖動,(另外作者建議在 Mac OS 上,最好添加 duration 參數)
滾動鼠標
格式:
scroll(200)
功能:
在相對的狀態下,傳遞正數向上滾動,傳遞負數向下滾動。
圖像識別
處理屏幕
獲得屏幕快照:
格式:im = pyautogui.screenshot()
功能:返回一個整個屏幕的 Pillow Image 對象。
分析屏幕快照:
格式:pyautogui.pixelMatchesColor(50, 200, (130, 135, 144))
功能:接受一個坐標值和一個含有三個整數的 RGB 元組,然後進行判斷顏色是否匹配,最後返回一個 True / False.
識別 & 定位
1. 獲得一小塊區域的屏幕快照
2. 使用 locateOnscreen() 這個方法進行定位
格式: pyautogui.locateOnscreen(‘submit.png‘)
功能:接受屏幕快照,返回屏幕上發現該圖像的左上角坐標以及圖像的寬度、高度。
控制鍵盤
鍵盤輸入
格式:pyautogui.typewrite(‘Hello world!‘,0.25)
功能:在文本輸入框內的焦點處,自動輸入第一個參數的字符串,第二個參數每個字母之間停留的時間間隔,是可選參數。
其他
- 鍵入給定鍵字符串:除了字符串,還可以傳遞鍵盤鍵字符串。如:‘enter‘,‘up‘,‘tab‘ 等等。格式:pyautogui.typewrite([‘left‘,‘right‘,‘enter‘])
- 按下和釋放鍵盤:pyautogui.keyDown(‘shift‘), pyautogui.keyUp(‘4‘)
- 熱鍵組合:pyautogui.hotkey([‘ctrl‘,‘c‘]) 功能:可執行組合鍵
Python 編程快速上手 第十八章 用 GUI 自動化控制鍵盤和鼠標