1. 程式人生 > >Python 編程快速上手 第十八章 用 GUI 自動化控制鍵盤和鼠標

Python 編程快速上手 第十八章 用 GUI 自動化控制鍵盤和鼠標

mouse tab 坐標 鼠標右鍵 以及 移動 前言 狀態 elm

前言

這一章節講述了如何實現 GUI 自動化,首先講了一些處理異常狀況的方法,然後是關於 GUI 自動化的內容,主要有三個部分:

  1. 控制鼠標
  2. 圖像識別
  3. 控制鍵盤

下面引用一段話:

請將 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 自動化控制鍵盤和鼠標