原文:
是一個(gè)純的GUI自動(dòng)化工具,其目的是可以用程序自動(dòng)控制鼠標(biāo)和鍵盤操作,多平臺(tái)支持(,OS X,Linux)。
安裝
pip3 install pyautogui
鼠標(biāo)操作樣例
import pyautogui # 獲取當(dāng)前屏幕分辨率 screenWidth, screenHeight = pyautogui.size() # 獲取當(dāng)前鼠標(biāo)位置 currentMouseX, currentMouseY = pyautogui.position() # 2秒鐘鼠標(biāo)移動(dòng)坐標(biāo)為100,100位置 絕對(duì)移動(dòng) #pyautogui.moveTo(100, 100,2) pyautogui.moveTo(x=100, y=100,duration=2, tween=pyautogui.linear) #鼠標(biāo)移到屏幕中央。 pyautogui.moveTo(screenWidth / 2, screenHeight / 2) # 鼠標(biāo)左擊一次 #pyautogui.click() # x # y # clicks 點(diǎn)擊次數(shù) # interval點(diǎn)擊之間的間隔 # button 'left', 'middle', 'right' 對(duì)應(yīng)鼠標(biāo) 左 中 右或者取值(1, 2, or 3)# tween 漸變函數(shù) # pyautogui.click(x=None, y=None, clicks=1, interval=0.0, button='left', duration=0.0, tween=pyautogui.linear) # 鼠標(biāo)相對(duì)移動(dòng) ,向下移動(dòng) #pyautogui.moveRel(None, 10) pyautogui.moveRel(xOffset=None, yOffset=10,duration=0.0, tween=pyautogui.linear) # 鼠標(biāo)當(dāng)前位置0間隔雙擊 #pyautogui.doubleClick() pyautogui.doubleClick(x=None, y=None, interval=0.0, button='left', duration=0.0, tween=pyautogui.linear) # 鼠標(biāo)當(dāng)前位置3擊 #pyautogui.tripleClick() pyautogui.tripleClick(x=None, y=None, interval=0.0, button='left', duration=0.0, tween=pyautogui.linear) #右擊 pyautogui.rightClick() #中擊 pyautogui.middleClick() # 用緩動(dòng)/漸變函數(shù)讓鼠標(biāo)2秒后移動(dòng)到(500,500)位置 # use tweening/easing function to move mouse over 2 seconds. pyautogui.moveTo(x=500, y=500, duration=2, tween=pyautogui.easeInOutQuad) #鼠標(biāo)拖拽
pyautogui.dragTo(x=427, y=535, duration=3,button='left') #鼠標(biāo)相對(duì)拖拽 pyautogui.dragRel(xOffset=100,yOffset=100,duration=,button='left',mouseDownUp=False) #鼠標(biāo)移動(dòng)到x=1796, y=778位置按下 pyautogui.mouseDown(x=1796, y=778, button='left') #鼠標(biāo)移動(dòng)到x=2745, y=778位置松開(與mouseDown組合使用選中) pyautogui.mouseUp(x=2745, y=778, button='left',duration=5) #鼠標(biāo)當(dāng)前位置滾輪滾動(dòng) pyautogui.scroll() #鼠標(biāo)水平滾動(dòng)(Linux) pyautogui.hscroll() #鼠標(biāo)左右滾動(dòng)(Linux) pyautogui.vscroll()
鍵盤操作樣例
#模擬輸入信息 pyautogui.typewrite(message='Hello world!',interval=0.5) #點(diǎn)擊ESC pyautogui.press('esc') # 按住shift鍵 pyautogui.keyDown('shift') # 放開shift鍵 pyautogui.keyUp('shift') # 模擬組合熱鍵pyautogui.hotkey('ctrl', 'c')
按鍵支持
按鍵說明
enter(或 或 \n)
回車
esc
ESC鍵
,
左右SHIFT鍵
,
左右ALT鍵
,
左右CTRL鍵
tab (\t)
TAB鍵
,
、鍵
,
PAGE UP 和 PAGE DOWN鍵
home, end
HOME 和 END鍵
up, down, left,right
箭頭鍵
f1, f2, f3….
F1…….F12鍵
, ,
有些鍵盤沒有
pause
PAUSE鍵
, ,
CAPS LOCK, NUM LOCK, 和 鍵
INS或鍵
PRTSC 或 PRINT 鍵
,
Win鍵
Mac OS X 鍵
提示信息
alert
#pyautogui.alert('This is an alert box.','Test') pyautogui.alert(text='This is an alert box.', title="Test")
#pyautogui.confirm('Shall I proceed?') pyautogui.confirm('Enter option.', buttons=['A', 'B', 'C'])
a = pyautogui.password('Enter password (text will be hidden)') print(a)
a = pyautogui.prompt('input message') print(a)
截屏
整個(gè)屏幕截圖并保存
im1 = pyautogui.screenshot() im1.save('my_screenshot.png') im2 = pyautogui.screenshot('my_screenshot2.png')
屏幕查找圖片位置并獲取中間點(diǎn)
#在當(dāng)前屏幕中查找指定圖片(圖片需要由系統(tǒng)截圖功能截取的圖) coords = pyautogui.locateOnScreen('folder.png') #獲取定位到的圖中間點(diǎn)坐標(biāo) x,y=pyautogui.center(coords) #右擊該坐標(biāo)點(diǎn) pyautogui.rightClick(x,y)
安全設(shè)置
import pyautogui #保護(hù)措施,避免失控 pyautogui.FAILSAFE = True #為所有的PyAutoGUI函數(shù)增加延遲。默認(rèn)延遲時(shí)間是0.1秒。 pyautogui.PAUSE = 0.5
文章推薦:Vue的data、、watch源碼淺談_vue. zip,,map函數(shù)代碼實(shí)例框架表單數(shù)組實(shí)現(xiàn)圖片批量上傳功能示例_php實(shí)例yii框架結(jié)合統(tǒng)計(jì)上一年與當(dāng)前年數(shù)據(jù)的方法示例_php實(shí)例yii框架結(jié)合實(shí)現(xiàn)統(tǒng)計(jì)30天數(shù)據(jù)的方法_php實(shí)例IDEA自動(dòng)生成的.xml的插件方法關(guān)鍵字及可變參數(shù)*args,**kw原理解析 框架實(shí)現(xiàn)按天,月,年c語言光標(biāo)移動(dòng)到指定位置c語言光標(biāo)移動(dòng)到指定位置,自定義時(shí)間段統(tǒng)計(jì)數(shù)據(jù)的方法分析_php實(shí)例
熱門內(nèi)容:中常駐后臺(tái),導(dǎo)致MySQL has gone away的解決方法_php技巧詳解 簡(jiǎn)明教程_相關(guān)技巧 Cache擴(kuò)展功能實(shí)現(xiàn)過程解析 RPC框架熔斷降級(jí)機(jī)制原理解析整合的知識(shí)點(diǎn)匯總枚舉與.net枚舉區(qū)別詳解語言實(shí)現(xiàn)電腦關(guān)機(jī)程序_C 語言linux編輯文件保存退出的實(shí)操講解應(yīng)用集成極光推送的實(shí)現(xiàn)示例語言求解定積分的方法_C 語言中任務(wù)的優(yōu)先級(jí)和返回狀態(tài)實(shí)例分析_php技巧 Boot Cache使用方法整合代碼實(shí)例 el-tree組件的動(dòng)態(tài)加載、新增、更新節(jié)點(diǎn)的實(shí)現(xiàn)_vue.中el-tree節(jié)點(diǎn)的操作的實(shí)現(xiàn)_vue.js15行代碼實(shí)現(xiàn)免費(fèi)發(fā)送手機(jī)短信推送消息功能 Tree 樹形控件的使用并給節(jié)點(diǎn)添加圖標(biāo)_vue.jsphp使用實(shí)現(xiàn)大數(shù)據(jù)的導(dǎo)出操作詳解_php技巧事務(wù)相關(guān)問題解決方案行代碼實(shí)現(xiàn)天氣預(yù)報(bào)和每日雞湯推送功能.3/5.4/5.5/5.6/7常見新增特性匯總整理_php技巧