通過ssh遠程執行腳本的時候,需要加上:
import os
os.environ["DISPLAY"] = ":0" # 注意這行代碼需要寫在"import pyautogui"之前
import pyautogui
1.安裝:
sudo pip3 install python3-xlib
sudo apt-get install scrot
sudo apt-get install python3-tk
sudo apt-get install python3-dev
sudo pip3 install pyautogui
2.暫停和自動放故障
pyautogui.PAUSE = 1,每個執行動作之后,都會等待1s
pyautogui.FAILSAFE = True,啟動自動防故障功能(鼠標移到屏幕的做上角,將導致pyautogui產生pyautogui.FailSafeException異常)在自動化測試項目中,為了不自動跳出用例腳本,通常設置未False
3.鼠標操作
3.1 控制鼠標移動
pyautogui.size() 返回兩個整數元素,包含屏幕的寬和高的像素數。
pyautogui.moveTo(x, y, duration=0.25)移動到某個坐標,duration表示移動到目的位置所需的秒數。
pyautogui.moveRel(x, y, duration=0.25)相對於當前位置移動鼠標。x,y可以為負數
3.2 獲取鼠標位置
pyautigui.positon()返回鼠標的位置
3.3 點擊鼠標
pyautogui.click() 默認左鍵在當前位置點擊
pyautogui.click(x, y, button='left')在指定位置左鍵點擊,button可以為'left','middle','right'
pyautogui.mouseDown()按下不放
pyautogui.mouseUp()釋放鼠標按鍵
pyautogui.doubleClick()雙擊左鍵
pyautogui.rightClick()雙擊右鍵
pyautogui.middleClick()雙擊中鍵
3.4 拖動鼠標
pyautogui.dragTo()鼠標拖動到一個位置
pyautogui.dragRel()相對當前拖到一個距離的位置
3.5 滾動鼠標
pyautogui.scroll(number) 上下滾動的單位
3.處理屏幕
需安裝scrot,才能在pyautogui中使用屏幕快照功能。sudo apt-get install scrot
3.1獲取屏幕快照
image = pyautogui.screenshot() ,image是一個屏幕快照的對象
image.getpixel(x, y) 返回圖像中坐標處的像素對象,返回值是一個RGB元組,包含3個整數。
3.2分析屏幕快照
pyauto.pixelMatchesColor(50, 200,(130,135,144)) >>True
4.圖像識別
實際使用下來有點問題,如果圖標比較小的情況,無法定位,圖像識別建議使用opencv模板匹配
pyautogui.locateOnScreen("xxx.png") >>(643, 745, 70, 29)
返回4個整數的元素,分別是屏幕上首次發現該圖像時左邊的x坐標、頂邊的y坐標、寬度以及高度。
如果該圖像在屏幕上能夠找到多出,locateAllOnScreen()函數將返回一個對象,將它傳給list(),返回一個4整數元組的列表。
list(pyautogui.locateAllOnScreen("xxx.png"))
pyautogui.center((643, 745, 70, 29)) >>返回圖像區域的中心坐標
5.鍵盤操作
pyautogui.typewrite("message") 輸入內容
pyautogui.typewrite(['ctrl','alt','a','left'])從左到右,先后順序按鍵盤的按鍵
pyautogui.keyDown('shift')按住不放
pyautogui.keyUp()鍵盤松開
pyautogui.press('ctrl')單個按鍵
pyautogui.hotkey('ctrl','c')組合按鍵(同時按)