參考文章:http://www.chenxm.cc/post/547...
安裝html
pip install pyautogui
官網:git
http://pyautogui.readthedocs.io/en/latest/
github:github
https://github.com/asweigart/pyautogui
介紹:
PyAutoGUI能夠模擬移動鼠標,單擊鼠標,用鼠標拖動,按鍵,按住鍵,還能夠按鍵盤熱鍵組合。
基礎操做函數
>>> import pyautogui # 獲取屏幕尺寸 >>> screenWidth, screenHeight = pyautogui.size() # 獲取當前座標位置 >>> currentMouseX, currentMouseY = pyautogui.position() # 鼠標移動到座標爲100,150的位置 >>> pyautogui.moveTo(100, 150) # 鼠標左擊 >>> pyautogui.click() # 鼠標移動10個像素 >>> pyautogui.moveRel(None, 10) # move mouse 10 pixels down # 鼠標雙擊 >>> pyautogui.doubleClick() >>> pyautogui.moveTo(500, 500, duration=2, tween=pyautogui.easeInOutQuad) # use tweening/easing function to move mouse over 2 seconds. # 鍵盤輸入Hello world! 間隔爲0.25秒 >>> pyautogui.typewrite('Hello world!', interval=0.25) # type with quarter-second pause in between each key # 按鍵 esc >>> pyautogui.press('esc') # shift按下 >>> pyautogui.keyDown('shift') # 按鍵左方向鍵 >>> pyautogui.press(['left', 'left', 'left', 'left', 'left', 'left']) # shift彈起 >>> pyautogui.keyUp('shift') # 組合件 ctrl +c >>> pyautogui.hotkey('ctrl', 'c')
保護措施:
PyAutoGUI函數增長延遲爲2.5秒:post
import pyautogui pyautogui.PAUSE = 2.5
當pyautogui.FAILSAFE = True時,若是把鼠標光標在屏幕左上角,PyAutoGUI函數就會產生pyautogui.FailSafeException異常。ui
import pyautogui pyautogui.FAILSAFE = True
鼠標操做:
移動code
import pyautogui width, hight = pyautogui.size() pyautogui.moveTo(width/2, hight/2) # 基本移動 pyautogui.moveTo(200, 200, duration=2) # 移動過程持續2s完成 pyautogui.moveTo(None, 100) # X方向不變,Y方向移動到100 pyautogui.moveRel(-40, 500) # 相對位置移動
拖拽
拖拽的意思是:按下鼠標鍵並拖動鼠標。PyAutoGUI提供了兩個函數:dragTo() 和 dragRel()。它的參數和moveTo() 和 moveRel() 同樣。htm
pyautogui.click(941, 34, button='left') pyautogui.dragRel(0, 100, button='left', duration=5)
點擊事件
click()函數就是讓鼠標點擊,默認是單擊左鍵,參數能夠設置: pyautogui.click(x=moveToX, y=moveToY, clicks=num_of_clicks, interval=secs_between_clicks, button='left')
其中,button屬性能夠設置成left,middle和right。圖片
pyautogui.doubleClick():鼠標雙擊,其實就是執行兩次click()函數。 pyautogui.rightClick():右擊 pyautogui.middleClick():中擊 pyautogui.tripleClick( pyautogui.click(300, 400, button='right') # 包含了move的點擊,右鍵 pyautogui.click(clicks=2, interval=0.25) # 雙擊,間隔0.25s
pyautogui.click(clicks=2)
pyautogui.click(clicks=2, interval=0.25)
pyautogui.click(button='right', clicks=2, interval=0.25)
鼠標按下和鬆開兩個事件能夠分開處理:
pyautogui.mouseDown(x=moveToX, y=moveToY, button='left') pyautogui.mouseUp(x=moveToX, y=moveToY, button='left')
滾輪
它只接受一個整數。若是值爲正往上滾,值爲負往下滾。
pyautogui.scroll(-10)
鍵盤操做
輸入文字
pyautogui.click(100, 200) pyautogui.typewrite('hello world!')
精確控制鍵盤
按鍵的按下和釋放 和鼠標按鍵很是相似。
keyDown():按下某個鍵 keyUp():鬆開某個鍵 press():一次完整的擊鍵,前面兩個函數的組合。 pyautogui.press('shift') # 切換輸入法的中英文 pyautogui.press(['#', ' ']) # press 能夠對單個字符或者列表進行操做 pyautogui.press(['c', 'h', 'e', 'n']) pyautogui.press(['x', 'i','n']) pyautogui.press(['m', 'i', 'n','g']) pyautogui.press(' ') # 陳新明
組合鍵hotKey
pyautogui.hotkey('shift', 'a') # 能夠使用組合鍵,等同於如下代碼 ''' pyautogui.keyDown('shift') pyautogui.keyDown('a') pyautogui.keyUp('shift') pyautogui.keyUp('a')
'''
截圖
import pyautogui im1 = pyautogui.screenshot() im2 = pyautogui.screenshot('my_screenshot.png') screenshot()須要花費100毫秒
若是你不須要截取整個屏幕,還有一個可選的region參數。你能夠把截取區域的左上角XY座標值和寬度、高度傳入截取。
im = pyautogui.screenshot(region=(0, 0, 300 ,400))
讀取截圖的圖片
import pyautogui pyautogui.locateOnScreen('my_screenshot.png')