精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Python自動操作 GUI 神器——PyAutoGUI

開發 后端
今天我們來聊一聊如何在桌面實現自動化操作。與瀏覽器頁面自動化操作類似,桌面自動化操作也是需要定位鼠標在桌面的位置,然后根據定位的位置執行對應的操作。

我們以前講過怎樣使用 Python 在瀏覽器中實現頁面自動化操作,不管用哪種方式實現,都是通過定位頁面中的元素來進行相應的操作。

今天我們來聊一聊如何在桌面實現自動化操作。與瀏覽器頁面自動化操作類似,桌面自動化操作也是需要定位鼠標在桌面的位置,然后根據定位的位置執行對應的操作。

GUI 控制神器

我們今天的主人公是 pyautogui,pyautogui 是一個純 Python 的 GUI 自動化工具,通過它可以讓程序自動控制鼠標和鍵盤的一系列操作來達到自動化測試的目的。

這個模塊的安裝也是老一套:

  • pip3 install pyautogui

安裝好了就可以直接使用了。

鼠標操作

鼠標移動

桌面操作最基本的就是鼠標操作了,我們可以控制鼠標的移動:

# 移動鼠標
pyautogui.moveTo(200,400,duration=2)
pyautogui.moveRel(200,500,duration=2)

整個桌面是以左上角為坐標軸的原點,所有的操作都以這個原點,來確定操作位置。

第一行是將鼠標移動到指定的像素(200,400)位置,第二行代碼是將鼠標按照當前點向右移動200px,向下移動400px這個方向移動。

兩行代碼中都有一個共同的參數 duration,這個參數表示移動時間,即在指定時間內完成移動操作,單位是秒。

運行這兩行代碼,觀察屏幕鼠標的變化,是不是很神奇?

我們還可以獲取鼠標位置:

print(pyautogui.position())

這個很好理解,就是獲取鼠標在當前屏幕中的坐標位置,運行這行代碼,我們會得到諸如下面的信息:

  • Point(x=400, y=900)

鼠標點擊

通常,我們的鼠標有左右兩個按鍵,高級點的鼠標中間還有個按鍵。

我的鼠標只有兩個按鍵,中間沒有按鍵,唉~

pyautogui針對這三個按鍵操作都有相應的處理:

# 鼠標點擊,默認左鍵
pyautogui.click(100,100)
# 單擊左鍵
pyautogui.click(100,100,button='left')
# 單擊右鍵
pyautogui.click(100,300,button='right')
# 單擊中間
pyautogui.click(100,300,button='middle')

鼠標點擊,如果不指定 button 參數,默認是點擊左鍵,前面兩個參數就是點擊坐標的位置。

運行這段代碼,看看你的桌面會發生什么?

鼠標除了點擊操作,還有雙擊操作:

# 雙擊左鍵
pyautogui.doubleClick(10,10)
# 雙擊右鍵
pyautogui.rightClick(10,10)
# 雙擊中鍵
pyautogui.middleClick(10,10)

操作函數也很簡單,相信大家一眼就能看明白,如果一眼看不明白,請多看幾眼!

熟悉前端的小伙伴可能會馬上聯想到,鼠標操作有按下和釋放的過程,我們屏幕操作也有對應的控制:

# 鼠標按下
pyautogui.mouseDown()
# 鼠標釋放
pyautogui.mouseUp()

鼠標拖動

我們可以控制鼠標拖動到指定坐標位置,并且設置操作時間:

pyautogui.dragTo(100,300,duration=1)

這個運行效果和前面移動類似。

根據前面移動的經驗,我們也有按照方向拖動鼠標:

pyautogui.dragRel(100,300,duration=4)

鼠標滾動

在桌面操作中,我們有時候需要滾動鼠標到達向上或者向下的位置,這時候我們可以使用 scroll 這個函數來控制:

pyautogui.scroll(30000)

參數是整數,表示向上或向下滾動多少個單位,這個單位根據不同的操作系統可能不一樣。如果向上滾動,傳入正整數,向下滾動傳入負整數。

屏幕處理

獲取屏幕截圖

我們先來假設一個場景:我現在要在屏幕上找到一個紅色的點,你會怎么做?通常的做法是拿到這個紅色點的顏色值,然后再對屏幕上的點逐個進行比較,直到找到為止。

pyautogui 為我們這個操作場景提供了支持,分別有三個函數可以完成這三件事情。

im = pyautogui.screenshot()
im.save('screenshot.png')
rgb = im.getpixel((100, 500))
print(rgb)
match = pyautogui.pixelMatchesColor(500,500,(12,120,400))
print(match)

第一個是獲取屏幕截圖函數,它可以返回一個 Pillow 的 image 對象; 第二個是獲取屏幕截圖中指定坐標點的顏色,返回 rgb 顏色值;第三個是將指定坐標點的顏色和目標的顏色進行比對,返回布爾值。

我們再來升級一下需求:

我現在要在屏幕上找到 edge 瀏覽器的圖標,你會怎么做?

通常的做法是先知道 edge 瀏覽器的圖標長啥樣,是綠色還是藍色,是胖的還是瘦的,對吧?然后再在屏幕上去進行圖標的匹配,直到找到一個圖標跟我們目標圖標一樣,就得到了結果。

于是,我們的代碼如下:

# 圖像識別(一個)
oneLocation = pyautogui.locateOnScreen('1.png')
print(oneLocation)
# 圖像識別(多個)
allLocation = pyautogui.locateAllOnScreen('1.png')
print(list(allLocation))

你可以在桌面上將某個應用的圖標截取下來,保存為圖片,然后使用上面幾行代碼來識別,識別成功,你會返回類似下面的結果:

Box(left=20, top=89, width=33, height=34)
[Box(left=20, top=89, width=33, height=34)]

這就是圖片在桌面的位置,如果找不到圖片,就會返回 None。

鍵盤輸入

鍵盤函數

鍵盤輸入有下面幾個常用的函數:

  • keyDown():模擬按鍵按下
  • keyUP():模擬按鍵松開
  • press():模擬一次按鍵過程,即 keyDown 和 keyUP 的組合
  • typewrite():模擬鍵盤輸出內容

舉個例子,大家平時輸入感嘆號(!)是怎么操作鍵盤的?

按住 shift 按鍵,然后再按住 1 按鍵,就可以了。用 pyautogui 控制就是:

pyautogui.keyDown('shift')    
pyautogui.press('1')
pyautogui.keyUp('shift')

運行上面的代碼,如果你的鼠標是放在編輯框中,你會得到一個感嘆號!

我們還可以直接輸出內容:

pyautogui.typewrite('python', 1)

第一個參數是輸出的內容,第二個參數是間隔時間,單位是秒。

運行上面代碼,你的編輯器里面就會每隔1秒鐘按順序輸出 python 的6個字母。

特殊符號

有時我們需要輸入鍵盤的一些特殊的符號按鍵,比如 換行、方向鍵等,這些有相對應的鍵盤字符串表示:

pyautogui.typewrite(['p','y','t','h','o','n','enter'])

運行上面代碼,編輯器里面就會輸出 python 之后換行。

其他特殊按鍵對應的字符串請參考官方說明。

快捷鍵

如果我要復制一個內容,大部分情況下會使用快鍵鍵 ctrl + c,按照上面講的,我們應該這么實現:

pyautogui.keyDown('ctrl')
pyautogui.keyDown('c')
pyautogui.keyUp('c')
pyautogui.keyUp('ctrl')

這樣寫起來很麻煩,而且需要掌控按鍵的按下和釋放的順序。

pyautogui 為我們提供了一個快捷的函數:

pyautogui.hotkey('ctrl','c')

實現的效果和上面的4行代碼相同。

信息框

當你在模擬一個桌面操作的時候,如果有分支操作需要根據實際情況來判斷,你是不是需要有一個地方可以讓你選擇走哪個分支?

pyautogui 貼心地考慮到了這種情況,你可以通過彈出一個選擇框來中斷當前的操作,選擇操作分支。

way = pyautogui.confirm('領導,該走哪條路?', buttons=['農村路', '水路', '陸路'])
print(way)

這里就是我們 HTML 頁面的 confirm 選擇框,選擇了選項之后,我們可以獲取到選擇的選項,然后基于這個選項做判斷,進入相應的操作分支。

除了選擇確認框之外,還有其他一些提示信息框:

# 警告框
alert = pyautogui.alert(text='警告!敵軍來襲!', title='警告框')
print(alert)
# 密碼框
password = pyautogui.password('請輸入密碼')
print(password)
# 普通輸入框
input = pyautogui.prompt('請輸入指令:')
print(input)

總結

pyautogui 的基本知識就給大家介紹到這里,這個 python 模塊的功能十分強大,函數都非常簡單,對 python 初學者比較友好。學了這些基本知識之后,你可以運用這些基本知識的組合,去實現一些有趣的桌面自動化操作,快去嘗試一把吧!

知識在于分享,轉發這篇文章,讓更多的人看到~

責任編輯:龐桂玉 來源: 簡說Python
相關推薦

2021-09-29 11:15:56

PyAutoGUIPython鍵鼠操作

2024-06-17 10:34:12

2020-12-31 11:55:56

PythonPlaywright微軟

2025-11-10 09:14:26

PythonExcel自動化

2022-05-07 07:47:51

ChromeAutoma

2021-12-02 15:14:02

ffmpeg視頻Python

2024-02-26 00:00:01

?win32WindowsCOM

2011-06-03 17:24:48

自動化測試

2024-05-23 11:33:42

python代碼開發

2025-04-03 08:30:00

Python數據庫ORM

2022-09-16 08:04:25

阿里云權限網絡

2020-04-14 15:33:37

Python 釘釘機器人

2022-08-30 23:54:42

MySQL數據庫工具

2021-07-04 12:44:04

PythonExcel身份證

2023-04-27 07:57:52

AutoIt自動化工具

2013-12-02 12:44:28

Facebook自動化管理

2022-06-06 14:54:44

PythonNuitka

2010-03-04 14:32:24

Python自動下載文

2025-05-21 08:23:52

IO開發Java

2013-07-25 14:00:18

AndroidGenymotion模擬器
點贊
收藏

51CTO技術棧公眾號

精品久久久网站| 91在线观看免费视频| 精品国产自在精品国产浪潮| 男人操女人下面视频| www成人免费观看| 国产色产综合色产在线视频| 91久久久久久国产精品| 中文字幕精品三级久久久| 俺要去色综合狠狠| 亚洲国产成人久久综合| 美女网站色免费| 欧美xxxx黑人又粗又长| 久久伊人蜜桃av一区二区| 91麻豆桃色免费看| 精品成人无码久久久久久| 欧美另类女人| 综合欧美国产视频二区| 在线精品视频播放| 日本在线一区二区| 日韩欧美一区二区三区久久| 黄色片免费在线观看视频| 触手亚洲一区二区三区| 97久久人人超碰| 999精品在线观看| 亚洲天堂777| 噜噜噜躁狠狠躁狠狠精品视频| 精品中文字幕在线2019| 亚洲一级片在线播放| 久久香蕉精品香蕉| 欧美tickling挠脚心丨vk| 在线免费黄色网| 成人天堂yy6080亚洲高清| 五月激情综合婷婷| 国产成人在线小视频| 黄色av电影在线观看| 国产欧美日本一区视频| 麻豆传媒一区| 亚洲三级中文字幕| 99久久久精品| 精品久久久久久中文字幕动漫| 国产熟女一区二区丰满| 精品制服美女丁香| 国产精品男女猛烈高潮激情| 日韩精品成人免费观看视频| 国产一区二区三区的电影| 久久久久女教师免费一区| 九九热只有精品| 中文字幕免费精品| 久久国产精品久久久久| tube国产麻豆| 一区二区三区四区电影| 久久综合电影一区| 来吧亚洲综合网| 888久久久| 久久网福利资源网站| 精品国产视频在线观看| 忘忧草精品久久久久久久高清| xxx一区二区| 欧美爱爱免费视频| 国产精品vip| 久久久久久久91| 国产性xxxx高清| 免费在线亚洲| 国产精品高潮呻吟久久av黑人| 成年人视频免费| 美女www一区二区| 91久久久久久久久久久久久| 99精品在线看| 成人app下载| 快播日韩欧美| 在线免费av电影| 亚洲精品你懂的| 国产精品久久久影院| 福利成人导航| 欧洲人成人精品| 国产高清999| 操欧美女人视频| 亚洲精品一区久久久久久| 人妻视频一区二区| 在线观看免费一区二区| 97精品视频在线观看| 中文字幕在线观看视频免费| 精品一区二区三区久久久| 国产精品欧美一级免费| www.久久久久| 久久综合成人网| 性欧美xxxx大乳国产app| 国产精品久久久久久久久| 国产美女自慰在线观看| caoporn国产精品| 亚洲欧美日韩精品综合在线观看| 综合图区亚洲| 91国偷自产一区二区三区成为亚洲经典| 亚洲国产成人va在线观看麻豆| 亚洲天堂av资源在线观看| 亚洲精选中文字幕| 日韩成人毛片视频| 视频精品一区二区| 99久久99| 在线播放日本| 欧美日韩激情小视频| 99re精彩视频| 香蕉久久夜色精品国产更新时间| 精品国产美女在线| 亚洲欧美综合另类| 国产69精品一区二区亚洲孕妇 | 日韩毛片在线免费看| 精品91福利视频| 国产午夜精品美女视频明星a级| 久久久久久免费观看| 免费成人美女在线观看.| 国产偷久久久精品专区| 精品国产白色丝袜高跟鞋| 色婷婷久久久久swag精品| 成人做爰69片免费| 97在线精品| 国产精品欧美激情在线播放| 婷婷伊人综合中文字幕| 亚洲精品成人精品456| 一级在线免费视频| 国产精品嫩模av在线| 欧美激情久久久久久| 国产女人高潮毛片| 国产精品久久久久一区二区三区共 | 精品人妻二区中文字幕| 亚洲91视频| 成人国产精品一区二区| 日本美女高潮视频| 麻豆视频在线观看免费网站黄| 欧美日韩不卡视频| 正在播放国产对白害羞| 日韩av中文字幕一区二区| 久久久人人爽| 成人黄色动漫| 亚洲第一av在线| 国产在线欧美在线| 国产很黄免费观看久久| 91免费网站视频| aa亚洲一区一区三区| 色播久久人人爽人人爽人人片视av| 丁香六月婷婷综合| 久久欧美一区二区| 99视频精品免费| 国产欧美一区二区三区精品观看| 欧美最猛性xxxxx免费| 无码国产精品一区二区色情男同 | 中文乱码免费一区二区| 国产激情在线观看视频| 韩日一区二区三区| 国产精品对白刺激| 欧美私人网站| 91精品国产综合久久国产大片| 一级黄色片日本| 国产在线看一区| www.男人天堂网| 国产精品一区二区中文字幕 | 日韩精品中文字幕在线播放| 国产精品久久久久久久精| 国产一区二区网址| 精品国产av无码一区二区三区| 91精品入口| 91a在线视频| 成年在线电影| 欧美一区二区视频在线观看 | 欧美综合一区二区三区| 国产精品一区二区亚洲| 精品亚洲成av人在线观看| 欧洲精品视频在线| 综合综合综合综合综合网| 国产精品69精品一区二区三区| 调教视频免费在线观看| 日韩免费福利电影在线观看| 亚洲一区欧美在线| 中文在线资源观看网站视频免费不卡| 57pao国产成永久免费视频| 欧美激情自拍| 免费中文日韩| 在线免费观看亚洲| 午夜精品免费视频| 成人午夜电影在线观看| 欧美一区二区视频在线观看2022| 日本五十熟hd丰满| 国产精品你懂的在线欣赏| 国产成人av免费观看| 免费在线日韩av| 2021狠狠干| va视频在线观看| 日韩高清不卡一区| 超碰97在线看| 国产成人久久| www.久久久| 亚洲天堂1区| 久久久久成人网| 1769在线观看| 亚洲经典中文字幕| 91成人国产综合久久精品| 婷婷综合另类小说色区| 日本综合在线观看| 99精品久久99久久久久| 在线观看国产福利| 久久精品伊人| 久久久久久人妻一区二区三区| 成人在线免费观看视频| 国产区一区二区| 国产95亚洲| 国产精品久久久久久久久久尿| 久久免费电影| 久久夜色精品亚洲噜噜国产mv| 欧洲一区av| 亚洲国产小视频在线观看| 久久综合久久久| 日本在线视频中文有码| 一本色道久久综合狠狠躁篇的优点| 丰满少妇一级片| 欧美一区二区私人影院日本| 中文无码av一区二区三区| 欧美性xxxx极品hd欧美风情| 激情五月婷婷在线| 自拍偷拍欧美激情| 精品一区二区三区蜜桃在线| 91女厕偷拍女厕偷拍高清| 中国男女全黄大片| 国产精品一品视频| 天天摸天天舔天天操| 日韩**一区毛片| 凹凸日日摸日日碰夜夜爽1| 一本久道久久综合狠狠爱| 国产精品视频一二三四区| 国产精品毛片一区二区在线看| 日韩欧美电影一区二区| 国产欧美日韩精品一区二区免费| 久久久久久欧美精品色一二三四| 加勒比视频一区| 国产一区二区免费电影| 久久久伦理片| 精品国产福利| 亚洲激情77| 日韩av电影免费在线| 精品国产乱码久久久| 日本视频一区二区不卡| 精品国产一区二区三区| 日本亚洲自拍| 青青草国产成人a∨下载安卓| 日韩久久久久久久| 欧美一区二区三区高清视频| 天堂资源在线亚洲视频| 成人免费av| 一区二区三区四区视频在线| 91九色精品| 国产又粗又猛又爽又黄的网站| 欧美日韩ab| 国内精品视频一区二区三区| 亚洲国产美女| 成年人免费在线播放| 人人超碰91尤物精品国产| 91制片厂毛片| 国产精品自拍一区| 91人妻一区二区| 26uuu色噜噜精品一区| 男人的天堂av网| 成人欧美一区二区三区| 久草视频中文在线| 日韩欧美国产网站| 最新中文字幕免费| 日韩视频在线永久播放| 好男人www在线视频| 亚洲精品在线看| 午夜看片在线免费| 欧美激情亚洲一区| 日本久久免费| 91系列在线观看| 欧美黑人巨大videos精品| 日本一区不卡| 欧美在线网址| av免费中文字幕| 国产一区二区不卡老阿姨| 麻豆精品国产传媒av| 国产清纯美女被跳蛋高潮一区二区久久w | 成人免费电影网址| 国产乱人伦精品一区二区三区| 一本色道久久综合| 五月激情婷婷在线| 成人动漫一区二区三区| 美国美女黄色片| 亚洲制服丝袜av| 丰满人妻一区二区三区四区| 欧美一级免费大片| 国产中文在线视频| 九九九热精品免费视频观看网站| 伊人久久综合一区二区| 亚洲a区在线视频| 国产亚洲第一伦理第一区| 一本色道久久88亚洲精品综合| 天天干天天色天天| 欧美午夜精品久久久久久孕妇| 国产后入清纯学生妹| 亚洲品质视频自拍网| 蜜臀av在线| 成人久久久久爱| 精品视频97| 男人日女人逼逼| 国产精品自在在线| 四虎地址8848| 在线观看亚洲成人| 色av男人的天堂免费在线| 欧美日韩成人免费| 日韩国产一二三区| 日韩高清在线播放| 亚洲第一网站| 中文字幕av一区二区三区人妻少妇| 国产欧美日韩激情| 亚洲黄网在线观看| 亚洲精品福利在线观看| 香蕉久久aⅴ一区二区三区| 国产精品美女久久久久av超清| 老汉色老汉首页av亚洲| 欧美极品少妇无套实战| 加勒比av一区二区| av片在线免费看| 91国偷自产一区二区开放时间 | 久久天堂久久| 国产伦精品一区二区三毛| 影音先锋日韩在线| 亚洲综合123| 亚洲欧洲日韩综合一区二区| 波多野结衣在线观看视频| 日韩成人免费视频| 黄色软件视频在线观看| 国产精品久久久久久久久婷婷 | 97欧美精品一区二区三区| 亚洲视频精选| 国产精品久久久久久久久电影网| 国产伦理精品不卡| 一区二区三区四区五区| 欧美久久久影院| 国产激情小视频在线| 91夜夜未满十八勿入爽爽影院| 久久久久久久久久久妇女 | 午夜免费福利小电影| 成人久久视频在线观看| 国产在线视频99| 精品成人a区在线观看| 91九色在线播放| 久久大片网站| 老牛影视一区二区三区| 日韩乱码人妻无码中文字幕久久| 欧美午夜影院在线视频| 国内精品在线视频| 国产精品普通话| 亚洲一区欧美| 日本人妻一区二区三区| 性做久久久久久免费观看 | 精品国产欧美一区二区五十路| 中文字幕日韩亚洲| 欧美日韩午夜爽爽| av成人老司机| 国产黄网在线观看| 国产探花在线精品一区二区| 欧美激情国产精品日韩| 欧美激情中文不卡| 国产免费久久久| 久久久久久av| 精品国产一区探花在线观看| 午夜剧场高清版免费观看| 亚洲精品国产一区二区精华液| 欧美一级特黄aaaaaa| 欧美中文在线观看| 日韩精品水蜜桃| 无码人妻一区二区三区免费n鬼沢| 无吗不卡中文字幕| 69久久精品| 国产精品我不卡| 水野朝阳av一区二区三区| 91大神福利视频| 亚洲第一精品福利| av在线一区不卡| 日本中文字幕一级片| 91蝌蚪国产九色| 国产精品无码久久av| 777777777亚洲妇女| 欧洲三级视频| 国产真实乱人偷精品| 欧洲精品在线观看| 波多野结衣中文在线| 日韩美女一区| av一本久道久久综合久久鬼色| 日韩乱码一区二区三区| 欧美福利在线观看| 成人在线免费观看视频| 成人做爰www看视频软件| 91成人国产精品| 波多野结衣久久| 中文字幕免费高| 国产欧美日韩另类一区| 黑人精品一区二区| 91久热免费在线视频| 爽好多水快深点欧美视频| 91porn在线视频| 色哟哟亚洲精品一区二区| 牛牛精品成人免费视频|