亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Python > 正文

Python使用pyautogui模塊實現自動化鼠標和鍵盤操作示例

2020-02-15 22:53:39
字體:
來源:轉載
供稿:網友

本文實例講述了Python使用pyautogui模塊實現自動化鼠標和鍵盤操作。分享給大家供大家參考,具體如下:

一、pyautogui模塊簡要說明

## 使用 pyautogui 模塊相關函數,可以模擬鼠標及鍵盤操作, 完整說明文檔見: http://pyautogui.readthedocs.org/
# pip install pyautogui
# 要注意的是,模擬移動鼠標與擊鍵可能太快,導致其他程序跟不上,并且程序可能失去控制,
# 需要掌握如何從問題中恢復,至少要能中止它。
# 防止或恢復GUI自動化問題
# 1) 使用pyautogui.PAUSE設置每個PyAutoGUI函數調用在執行動作后暫停的秒數
# 2) pyautogui自動防故障功能:將鼠標移到屏幕的左上角,來拋出failSafeException異常

二、控制鼠標移動與交互

三、屏幕快照與識別比較

四、控制鍵盤

五、綜合例子

具體見以下代碼及說明:

## 使用 pyautogui 模塊相關函數,可以模擬鼠標及鍵盤操作, 完整說明文檔見: http://pyautogui.readthedocs.org/# pip install pyautogui# 要注意的是,模擬移動鼠標與擊鍵可能太快,導致其他程序跟不上,并且程序可能失去控制,# 需要掌握如何從問題中恢復,至少要能中止它。# 防止或恢復GUI自動化問題#  1) 使用pyautogui.PAUSE設置每個PyAutoGUI函數調用在執行動作后暫停的秒數#  2) pyautogui自動防故障功能:將鼠標移到屏幕的左上角,來拋出failSafeException異常import pyautoguipyautogui.PAUSE = 1pyautogui.FAILSAFE = True      # 啟用自動防故障功能width,height = pyautogui.size()   # 屏幕的寬度和高度pyautogui.position()        # 鼠標當前位置## 控制鼠標移動for i in range(10):  pyautogui.moveTo(100,100,duration=0.25)   # 移動到 (100,100)  pyautogui.moveTo(200,100,duration=0.25)  pyautogui.moveTo(200,200,duration=0.25)  pyautogui.moveTo(100,200,duration=0.25)for i in range(10):  pyautogui.moveRel(100,0,duration=0.25)    # 從當前位置右移100像素  pyautogui.moveRel(0,100,duration=0.25)    # 向下  pyautogui.moveRel(-100,0,duration=0.25)   # 向左  pyautogui.moveRel(0,-100,duration=0.25)   # 向上## 例子:持續獲取鼠標位置并更新顯示# 1.獲取當前坐標# 2.在屏幕上打印,并刪除之前打印的坐標# 3.處理異常,并能按鍵退出# Displays the mouse cursor's currrent position.import pyautoguiprint('Press Ctrl-C to quit.')try:  while True:    # Get and print the mouse coordinates.    x,y = pyautogui.position()    positionStr = 'X: '+str(x).rjust(4)+' Y:'+str(y).rjust(4)    pix = pyautogui.screenshot().getpixel((x,y))  # 獲取鼠標所在屏幕點的RGB顏色    positionStr += ' RGB:('+str(pix[0]).rjust(3)+','+str(pix[1]).rjust(3)+','+str(pix[2]).rjust(3)+')'    print(positionStr,end='')           # end='' 替換了默認的換行    print('/b'*len(positionStr),end='',flush=True) # 連續退格鍵并刷新,刪除之前打印的坐標,就像直接更新坐標效果except KeyboardInterrupt:               # 處理 Ctrl-C 按鍵  print('/nDone.')## 控制鼠標交互# pyautogui.click() 封裝了 pyautogui.mouseDown()和pyautogui.mouseUp(), 這兩個函數也可以單獨使用# pyautogui.doubleClick() 雙擊左鍵, pyautogui.rightClick() 雙擊右鍵,pyautogui.middleClick() 雙擊中鍵import pyautoguipyautogui.click(10,5)           # 在(10,5)單擊鼠標,默認左鍵pyautogui.click(100,150,button='left')pyautogui.click(200,250,button='right')# pyautogui.dragTo()  按鍵并拖動鼠標移動,參數為坐標,與moveTo相同# pyautogui.dragRel()  按鍵并拖動鼠標移動,參數為距離,與moveRel相同import pyautogui,timetime.sleep(5)# 這里停頓5秒,用于手工打開windows繪圖應用,并選中鉛筆或畫圖工具,讓鼠標停留在畫圖工具的窗口中# 或使用在線paint (http://sumopaint.com)pyautogui.click()   # click to put drawing program in focusdistance = 200while distance > 0 :  pyautogui.dragRel(distance,0,duration=0.2) # move right  distance = distance - 5  pyautogui.dragRel(0,distance,duration=0.2) # move down  pyautogui.dragRel(-distance,0,duration=0.2) # move left  distance = distance - 5  pyautogui.dragRel(0,-distance,duration=0.2) # move upprint('Done')pyautogui.scroll(200)     # 鼠標向上滾動200像素pyautogui.scroll(-100)    #   負數向下import pyperclipnumbers = ''for i in range(200):  numbers = numbers + str(i) + '/n'pyperclip.copy(numbers)print(numbers)# 這里手動打開一個文本窗口,粘貼import time,pyautoguitime.sleep(5);pyautogui.scroll(100)## 分析屏幕快照import pyautoguiim = pyautogui.screenshot()   # 獲取屏幕快照im.getpixel((50,200))      # (130,135,144)pyautogui.pixelMatchesColor(50,200,(130,135,144))  # True 可用來判斷屏幕是否發生變化pyautogui.pixelMatchesColor(50,200,(255,135,144))  # False# 圖像定位識別pyautogui.locateOnScreen('submit.png')  # 在屏幕上查找匹配與文件相同的區域--每個區域像素都要相同 左,頂,寬,高pyautogui.center(pyautogui.locateOnScreen('submit.png')) # 獲取匹配圖像中心點坐標pyautogui.click((678,759))        # 點擊該區域核心list(pyautogui.locateAllOnScreen('submit.png'))  # 匹配到多處,返回區域list## 控制鍵盤pyautogui.click(100,100);pyautogui.typewrite('Hello python')pyautogui.typewrite(['a','b','left','left','X','Y']) # typewrite可傳入擊鍵列表,這里輸出XYab,left是左箭頭print(pyautogui.KEYBOARD_KEYS)      # pyautogui接受的所有可能字符串pyautogui.press('enter')         # 接受按鍵命令pyautogui.keyDown('shift');pyautogui.press('4');pyautogui.keyUp('shift')  # 輸出 $ 符號的按鍵#熱鍵組合pyautogui.keyDown('ctrl')pyautogui.keyDown('c')pyautogui.keyUp('c')pyautogui.keyUp('ctrl')# 這四句是組合 ctrl-c,類似這種順序按下,再反序釋放的,可以用hotkey()pyautogui.hotkey('ctrl','c')        # 同上面四句,組合鍵pyautogui.hotkey('ctrl','alt','shift','s') # Ctrl-Alt-Shift-S 熱鍵組合## 綜合例子: 自動填表程序# http://autbor.com/form# 將電子表格中的大量數據自動輸入到另一個應用的表單界面# 1.點擊表單的第一個文本字段# 2.遍歷表單,再每個輸入欄鍵入信息# 3.點擊submit按鈕# 4.用下一組數據重復這個過程# Automatically fills in the form.import pyautogui,time# set these to the correct coordinates for your computer.nameField = (648,319)submitButton = (651,817)submitButtonColor = (75,141,249)submitAnotherLink = (760,224)formData = [{'name':'Alice','fear':'eavppers','source':'wand','robocop':4,'comments':'Tell us'},      {'name':'Bog','fear':'eaves','source':'crystal','robocop':4,'comments':'Big room'},      {'name':'Kad','fear':'apple','source':'woold','robocop':1,'comments':'Nice day'},      {'name':'Cace','fear':'ppers','source':'ball','robocop':5,'comments':'n/a'}      ]pyautogui.PAUSE = 0.5for person in formData:  # Give the user a chance to kill the script.  print('>>> 5 SECOND PAUSE TO LET USER PRESS CTRL-C <<<')  time.sleep(5)  # Wait until the form page has loaded.  while not pyautogui.pixelMatchesColor(submitButton[0],submitButton[1],submitButtonColor):    time.sleep(0.5)  print('Entering %s info...' % (person['name']))  pyautogui.click(nameField[0],nameField[1])    # 單擊第一個文本字段輸入位置  # Fill out the Name field.  pyautogui.typewrite(person['name']+'/t')     # 輸入該域,并按下 tab 鍵,將焦點轉向下一個輸入框  # Fill out the Greatest Fear(s) field.  pyautogui.typewrite(person['fear']+'/t')  # 處理下拉框  # Fill out the Source of Wizard Powers Field  if person['source'] == 'wand':    pyautogui.typewrite(['down','/t'])  elif person['source'] == 'crystal':    pyautogui.typewrite(['down','down','/t'])  elif person['source'] == 'woold':    pyautogui.typewrite(['down','down','down','/t'])  elif person['source'] == 'ball':    pyautogui.typewrite(['down','down','down','down','/t'])  # 處理單選按鈕  # Fill out the RoboCop field  if person['robocop'] == 1:    pyautogui.typewrite([' ','/t'])  elif person['robocop'] == 2:    pyautogui.typewrite(['right','/t'])  elif person['robocop'] == 3:    pyautogui.typewrite(['right','right','/t'])  elif person['robocop'] == 4:    pyautogui.typewrite(['right','right','right','/t'])  elif person['robocop'] == 5:    pyautogui.typewrite(['right','right','right','right','/t'])  # Fill out the Additional Comments field.  pyautogui.typewrite(person['comments']+'/t')  # Click Submit.  pyautogui.press('enter')  # Wait until form page has loaded.  print('Clicked submit.')  time.sleep(5)  # Click the Submit another response link.  pyautogui.click(submitAnotherLink[0],submitAnotherLink[1])            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美性生交大片免费| 亚洲视频在线视频| 亚洲精品美女免费| 欧美一级视频一区二区| 不卡av在线网站| 91亚洲精品在线观看| 亚洲欧美日韩精品久久| 亚洲影院色无极综合| 国语自产偷拍精品视频偷| 亚洲伦理中文字幕| 久久久国产影院| 午夜精品久久久久久久99黑人| 最近2019中文免费高清视频观看www99| www.日本久久久久com.| 成人免费直播live| 欧美国产日韩一区二区| 亚洲最大福利视频| 九九视频直播综合网| 日本一区二区在线免费播放| 亚洲网站在线观看| 欧美日韩成人在线观看| 中文.日本.精品| 亚洲精品国产综合区久久久久久久| 日韩中文字幕欧美| 91国内在线视频| 欧美日本亚洲视频| 久久久中精品2020中文| 色综合久久悠悠| 午夜精品一区二区三区在线| 热久久免费视频精品| 日韩免费av一区二区| 91av免费观看91av精品在线| 久久躁日日躁aaaaxxxx| www.久久草.com| 8x拔播拔播x8国产精品| 欧美日韩999| 在线视频中文亚洲| 欧美电影在线免费观看网站| 亚洲美女中文字幕| 日韩精品免费在线播放| 夜夜嗨av色综合久久久综合网| 欧美激情亚洲一区| 国产91九色视频| 欧美日韩国产色视频| 日本欧美爱爱爱| 欧美在线亚洲在线| 国产精品久久久久久婷婷天堂| 亚洲第一国产精品| 亚洲精品美女久久久久| 日韩美女在线播放| 久久精品国产一区| 欧美性色视频在线| 久久精品成人一区二区三区| 国产在线a不卡| 欧美日韩免费区域视频在线观看| 在线观看日韩视频| 欧美性理论片在线观看片免费| 久久精品成人欧美大片| 97在线免费观看| 亚洲精品免费av| 欧美电影免费观看| 国产在线日韩在线| 国产亚洲精品美女久久久久| 欧美乱大交xxxxx| 亚洲第一区第二区| 日韩av高清不卡| 亚洲自拍小视频| 国产精品v片在线观看不卡| 日韩欧美国产成人| 欧美孕妇毛茸茸xxxx| 国产精品福利在线观看网址| 精品中文字幕久久久久久| 最近2019年好看中文字幕视频| 中文字幕一区日韩电影| 国产亚洲人成网站在线观看| 亚洲国产又黄又爽女人高潮的| 国产视频欧美视频| 久久久久久久久久久网站| 午夜精品久久久久久99热软件| 国产精品久久久久久久久男| 91欧美精品成人综合在线观看| 日韩av在线一区二区| 97在线精品视频| 欧美肥臀大乳一区二区免费视频| 精品在线观看国产| 国产裸体写真av一区二区| 亚洲午夜精品久久久久久性色| 亚洲精品国产精品自产a区红杏吧| 国内伊人久久久久久网站视频| 成人在线视频福利| 中文字幕综合在线| 亚洲二区中文字幕| 在线色欧美三级视频| 国产精品永久免费视频| 国产精品日日做人人爱| 亚洲欧美在线一区| 色综合天天狠天天透天天伊人| 国产精品大陆在线观看| 欧美激情第一页xxx| 91在线看www| 国产精品久久久999| 中文字幕欧美精品日韩中文字幕| 亚洲国产日韩欧美在线99| 日韩欧美在线免费观看| 亚洲精品自拍偷拍| 国产在线不卡精品| 欧美国产精品日韩| 97福利一区二区| 91精品国产高清久久久久久久久| 久久国产精品偷| 97涩涩爰在线观看亚洲| 性欧美办公室18xxxxhd| 亚洲国产中文字幕在线观看| 国产成人精品免高潮费视频| 成人国产精品一区二区| 国产91亚洲精品| 国产精品九九久久久久久久| 色妞久久福利网| 91精品国产色综合久久不卡98口| 琪琪亚洲精品午夜在线| 日韩av不卡在线| 久久久久久久香蕉网| 国产精品视频资源| 国产自产女人91一区在线观看| 欧美激情一区二区三区久久久| 九九久久久久99精品| 亚洲韩国欧洲国产日产av| 久久久久国产精品免费网站| 欧美在线视频观看| 国产精品偷伦免费视频观看的| 欧美综合一区第一页| 国产成人黄色av| 欧美精品久久一区二区| 狠狠色噜噜狠狠狠狠97| 精品久久中文字幕| 国产深夜精品福利| 欧美日韩免费观看中文| 成人免费福利在线| 国产精品黄页免费高清在线观看| 夜夜狂射影院欧美极品| 精品一区二区三区四区| 国产日韩欧美视频在线| 国产日韩欧美视频| 国产91精品高潮白浆喷水| 色午夜这里只有精品| 国产精品丝袜白浆摸在线| 疯狂做受xxxx欧美肥白少妇| 国产美女被下药99| 亚洲欧美国产va在线影院| 欧美激情免费看| 国产网站欧美日韩免费精品在线观看| 亚洲自拍偷拍第一页| 国产精品揄拍500视频| 亚洲欧洲免费视频| 亚洲美女自拍视频| 亚洲小视频在线观看| 97精品伊人久久久大香线蕉| 亚洲图片制服诱惑| 538国产精品一区二区在线| 国产精品免费看久久久香蕉| 国产精品久久久久久久久久久新郎| 日韩中文字幕免费| 欧美精品久久久久a| 精品在线观看国产|