python pyautogui 簡介

pyautogui 是 python的一個模組,他能控制鍵盤和滑鼠的操作,能利用它做自動化操作,像是用在軟體測試、重複性動作等。

pyautogui 暫停幾秒鐘

>>>pyautogui.PAUSE = 1.5

fail-safe (預設false)

當滑鼠一道螢幕左上角時,觸發 pyautogui 的failsafeexception 異常
>>>pyautogui.FAILSAFE = True

螢幕上的座標軸


(0,0) →→→→(1920,0)
   ↓
   ↓
   ↓
   ↓
(0,1080)

取得螢幕解析度
>>>import pyautogui

>>>pyautogui.size()
(1920, 1080)

>>>width, height = pyautogui.size()

滑鼠部分

moveTo(width, height, duration)

example移動到(300, 400)位置
pyautogui.moveTo(300, 400)                 #立即到
pyautogui.moveTo(300, 400, duration = 1.5) #花1.5秒移到

moeRel(width, height, duration)

移到相對座標,以當前滑鼠座標為基準點
pyautogui.moveRel(0, 100, duration=0.25)
pyautogui.moveRel(-100, 0, duration=0.25)

position()

獲得滑鼠當前的座標位置
>>>pyautogui.position()
(300, 400)

click(width, height, button)

滑鼠點擊
button = 'left', 'middle', 'right'。
pyautogui.click()                                #在當前位置點擊(預設左鍵)
pyautogui.click(width, height)                   #在(width, height)點擊滑鼠(預設左鍵)
pyautogui.click(width, height, button='left')    #點擊滑鼠左鍵

click()包含著mouseDown()及mouseUp()兩個動作

mouseDown()

只按下按鍵

mouseUp()

只彈起按鍵

Other:

pyautogui.doubleClick():鼠標雙擊,其實就是執行兩次click()函數。
pyautogui.rightClick():右擊
pyautogui.middleClick():中擊

dragTo(width, height, duration) 

拖曳。按下滑鼠拉動
注意:duration時間不能太短,拖動太快有些系統會吃不消

dragRel(width, height, duration)

拖曳。按下滑鼠拉動相對位置
注意:duration時間不能太短,拖動太快有些系統會吃不消

scroll(int)

滑鼠滾輪。值為正值往上滾,值為負往下滾。
pyautogui.scroll(200)

locateOnScreen(filename)

透過圖片匹配找到所在位置,尋找的位置一定要完整地出現在螢幕上,找獨到需要等很久才會出現錯誤跳出,目前還沒找到如何能判斷找不到的判斷式。
>>>locateOnScreen('button.png')
(643, 745, 70, 29)

center()

中心座標。
button = locateOnScreen('button.png')
width, height = pyautogui.center(button)

width, height = pyautogui.center((643, 745, 70, 29))
pyautogui.click(width, height)

鍵盤操作

typewrite(string)

輸入字串。
pyautogui.typewrite('Hello world!')

pyautogui.typewrite('Hello world!', 0.25)  #延遲輸入
鍵盤按鍵表
'enter' (或'return' 或 '\n')                 Enter鍵
'esc'                                        ESC鍵
'shiftleft', 'shiftright'                    左右SHIFT鍵
'altleft', 'altright'                        左右ALT鍵
'ctrlleft', 'ctrlright'                      左右CTRL鍵
'tab' ('\t')                                 TAB鍵
'backspace', 'delete'                        BACKSPACE 、DELETE鍵
'pageup', 'pagedown'                         PAGE UP和PAGE DOWN鍵
'home', 'end'                                HOME和END鍵
'up', 'down', 'left', 'right'                方向鍵
'f1', 'f2','f3'...。                        F1 ...... .F12鍵
'volumemute', 'volumedown', 'volumeup'       有些鍵盤沒有
'pause'                                      PAUSE鍵
'Capslock', 'numlock', 'scrolllock'          CAPS LOCK,NUM LOCK和SCROLL LOCK鍵
'insert'                                     INS或INSERT鍵
'printscreen'                                PRTSC 或 PRINT SCREEN鍵
'winleft', 'winright'                        Win鍵
'command'                                    Mac OS X command鍵

keyDown()

按下某個鍵

keyUp()

鬆開某個鍵

press()

一次完整的擊鍵,前面兩個函數的組合。
pyautogui.press(['enter','tab']) #按一下enter 再按tab

example: altleft + f4

pyautogui.keyDown('altleft');
pyautogui.press('f4');
pyautogui.keyUp('altleft')


hotkey()

example: altleft + f4
pyautogui.hotkey('altleft', 'f4')






整理自:WTF Daily Blog
參考自:https://sites.google.com/a/crayflames.co.cc/crayflames/python/ptp/pythonpyautoguimonishubiaodongzuo
http://martychen920.blogspot.tw/2017/06/python-pyautogui.html

留言

這個網誌中的熱門文章

C# 模擬鍵盤滑鼠控制電腦

android 定時通知(永久長期的) 本篇只講AlarmManager使用

raspberrypi 開機自動執行程式 與 在terminal開啟第二個terminal執行python

python nn 聲音辨識 -1 傅立葉轉換