PyAutoGUI:自動化鍵鼠操作的Python類庫

2021-01-07 樂百川評遊戲

隨便挑了一張看起來比較高端的圖片

有些朋友可能玩過按鍵精靈,一個用來操作鍵盤滑鼠完成一些自動化工作的軟體。其實如果你學了Python的話,完全用不著按鍵精靈這種東西了。因為廣泛的Python類庫裡,就有PyAutoGUI這樣可以變成控制鍵盤滑鼠的類庫,有了它,就可以用Python隨心所欲的操作電腦了。而且這個類庫是跨平臺的,Windows、Linux、macOS都可以用,是不是很吸引人呢?

Github頁面

安裝和使用

安裝PyAutoGUI非常簡單,從pip安裝即可。

pip install pyautogui

用pip安裝

這裡順便介紹一下PyAutoGUI的坐標系統,和一些常見的繪圖坐標系統相同,左上角為原點,向右是x軸正方向,向下是y軸正方向。假如你的屏幕是1920*1080,那麼右下角的坐標就是(1919, 1079),因為坐標是從0開始的,而不是從1開始的,這一點要格外注意。

PyAutoGUI雖然有很多函數,但是函數的作用基本上就是單擊/雙擊滑鼠、敲擊/按下/彈起按鍵這樣的,函數參數也就是點擊間隔、點擊按鍵這樣很簡單的參數。所以我就不列例子了,總之用起來非常簡單。

函數簡介

下面來介紹一下PyAutoGUI的函數。先來看看滑鼠操作函數,主要是點擊、拖動、滑動滾輪這些操作。

滑鼠操作

鍵盤操作函數,主要就是按鍵、組合鍵操作。

鍵盤操作

提示框函數,可以用來顯示警告、確認、提示和密碼輸入對話框,增強程序可操作性。顯示對話框的時候,程序會暫停,直到用戶處理對話框。

提示框函數

截圖函數,可以從屏幕上截圖,也可以根據已有圖片從屏幕上定位。主要用途是事先保存一些按鈕圖片,然後從屏幕上識別定位來點擊按鈕。

截圖函數

操作實例

首先來看看官網的一個畫圖例子,我們需要打開一個畫圖程序的窗口,然後將它放到全屏。然後運行下面的代碼,然後切換到畫圖窗口。等待3秒鐘以後就可以看到PyAutoGUI開始畫圖了。

import pyautoguidistance = 100pyautogui.moveTo(400, 300)while distance > 0: pyautogui.drag(distance, 0, duration=0.1) distance -= 5 pyautogui.drag(0, distance, duration=0.1) pyautogui.drag(-distance, 0, duration=0.1) distance -= 5 pyautogui.drag(0, -distance, duration=0.1) 結果如下。其實這個畫圖的代碼很簡單,就是一圈一圈縮小,然後調用drag函數拖住畫筆不放。

畫出來的圖

再來看一個圖片識別的例子,這個例子需要先安裝OpenCV庫和opencv-python包。安裝之後就可以運行下面的例子了。這個例子保存了windows 10計算機的幾個按鈕截圖,然後通過圖形識別的方式找到並點擊按鈕執行操作。注意下面用到了confidence參數,即使圖片沒有完全匹配也可以識別到。

import pyautoguiimport timetime.sleep(3)# Windows計算器的按鈕截圖five = '5.png'eight = '8.png'multiply = 'multiply.png'equals = 'equals.png'# 圖片識別和點擊的函數def find_and_click(image): x, y = pyautogui.locateCenterOnScreen(image, confidence=0.9) pyautogui.click(x, y)# 執行5*8=find_and_click(five)find_and_click(multiply)find_and_click(eight)find_and_click(equals)代碼以及圖片的完整例子可以查看我的github,地址如下。

https://github.com/techstay/python-study/tree/master/pyautogui-sample

通過PyAutoGUI,你可以輕鬆的對圖形界面進行自動化編程,按照屏幕位置或者圖片識別來定位控制項的位置,然後通過編程來控制滑鼠和鍵盤輸入。這和按鍵精靈的道理是一樣的。但是Python可以利用廣泛的第三方包來實現更多的功能,這一點是按鍵精靈無法相比的。

相關焦點

  • python辦公自動化:PyAutoGUI入門秘笈一
    學好PyAutoGUI,讓機器幫你幹活就能實現這麼舒爽的目標有同學看了以前對python辦公自動化:讓PyAutoGUI來幫你幹活,很感興趣,開始動手實踐。但是遇到很多問題,怎麼能讓大家能更快的入門PyAutoGUI呢,特地準備了以下系列,從入門到使用技巧,對PyAutoGUI做了全方位的解讀。
  • Mybridge AI對近1000篇Python文章排名(2018.3)得到最火的十篇(附第一篇英語原文,文末可下載PDF)
    《用Python將無聊的東西自動化》中許多有用庫之一是pyautogui,它允許我們通過Python來控制鍵盤和滑鼠。他們說,當你有錘子的時候,每一個問題看起來都像釘子,這就是事實。Python和pyautogui允許我按下箭頭鍵並截屏,我將兩者結合起來,找到了解決圖書問題的方法。我寫了我的第一個程序,它會自動地打開書中的每一頁,然後截圖。
  • Python測試開發庫及項目(超全面!)
    https://github.com/hitchtest/hitchhttps://github.com/python-needle/needleseleniumbase - 端到端自動化測試框架。https://github.com/cryzed/Selenium-Requestshttps://github.com/appium/python-client --推薦https://github.com/xiaocong/uiautomatorATX - 智慧型手機自動化工具。
  • Python驅動SAP GUI完成自動化(五)
    小爬前幾篇SAP GUI自動化相關的博文提到過,我們可以藉助tracker工具,在手工利用SAP GUI完成一系列操作(查詢、導表、創建憑證等
  • python自動化辦公手冊之python操作PPT
    前言1)python自動化文檔手冊python自動化文章一直深受廣大python愛好者的青睞。基於此,我花了整整一周時間真理出來的python自動化文檔手冊,涉及到五個章節(如下圖所示),① python使用openpyxl操作excel;② python使用PyPDF2和pdfplumber操作pdf;③ python使用python-docx操作word;④ python使用python-pptx操作PPT;⑤ python如何自動收發郵件;⑥ python製作電話號碼歸屬地查詢工具。
  • 用 Python 庫 PySimpleGUI 製作自動化辦公小軟體!
    來源丨Python自動化辦公社區連結
  • Python 題庫自動化面試題
    18、你覺得自動化測試用哪些缺陷 19、Web 端功能自動化,如何實現(非input型上傳)上傳文件  這兩個庫:import win32guiimport win32con20、遇到<d1> 這種class中間有空格的控制項,如何通過class定位?
  • Appium+Python做移動端自動化測試
    第一章 導言  1.1 編制目的  該文檔為選用Appium作為行動裝置原生(Native)、混合(Hybrid)、移動Web(Mobile Web)應用UI自動化測試的相關自動化測試人員、開發人員等提供參考。
  • 你等待的Python Qt GUI來啦!順帶送你點乾貨:從Qt C++類庫到PyQt5
    Qt C++的類庫也是以模塊組織的,Qt C++類庫中的模塊與PyQt5中的模塊基本是對應的,可以在Qt Creator的幫助頁面查找一個類的詳細資料來查到其屬於哪個模塊。例如,QPalette類的幫助信息的基本描述如圖2-33所示,其中有一行是:這表明在Qt C++類庫中,QPalette是屬於gui模塊的,那麼在PyQt5中對應的模塊就是PyQt5.QtGui,所以導入語句應該是:1from PyQt5.QtGui import  QPaletteQt幫助文檔中qmake語句常見的描述與PyQt5模塊的對應關係如表
  • UI自動化測試上傳文件方法都在這裡了!
    實施UI自動化測試的時候,經常會遇見上傳文件的操作,那麼對於上傳文件你知道幾種方法呢?今天我們就總結一下幾種常用的上傳文件的方法,並分析一下每個方法的優點和缺點以及哪種方法效率,穩定性更高。第三種方法:模擬鍵盤的粘貼與回車操作並結合剪切板的操作來完成上傳文件,基本原理是向剪切板中發送文件(文件路徑字符串),然後再從剪切板中獲取到文件,最後通過模擬鍵盤的ctrl+v與enter鍵來完成文件上傳這種方法需要第三方庫的支持,安裝pypiwin32庫: pip install pypiwin32實例
  • 整理了34個Python自動化辦公庫!
    >回復二級計算機二級資料本次內容涵蓋了Excel、Word、PPT、ODF、PDF、郵件、微信、文件處理等所有能在辦公場景實現自動化的庫,希望能夠對大家有所幫助。https://pypi.python.org/pypi/xlrd特點:在 python 中,xlrd 庫是一個很常用的讀取 excel 文件的庫,其對 excel 文件的讀取可以實現比較精細的控制。https://pypi.org/project/xlwt/特點:類比於 xlrd 的 reader,那麼 xlwt 就相對於 writer,而且很純正的一點就是它只能對 Excel 進行寫操作。
  • 使用Python,怎麼截圖?
    方法一:import pyautoguiclass gng() :    myScreenshot = pyautogui.screenshot()    myScreenshot.save('.
  • python自動化辦公系列 | python操作pdf—— PyPDF2 和 pdfplumber模塊(2)
    第一個的系統化的分享專題——python辦公自動化。代碼後面的#所表示的是注釋,對本行代碼進行解釋的內容,用#號開頭是讓程序理解這是注釋不需要運行的意思。本模板旨在分享和解讀完整代碼,只要你有安裝配置好python環境,在pycharm裡安裝相應的第三方文件庫,黏貼代碼即可運行,我會儘量在代碼後面都進行標註解讀。我們以實用型為目的學習。編程類學習,從模仿中掌握突破。
  • 用於全棧自動化測試的最佳Python工具!
    那麼,您可以使用哪些最好的Python庫來幫助您進行測試和自動化工作呢?以下是我過去的受訪者最喜歡的一些Python自動化庫,以及一些我個人認為有用的庫。  但是首先,如果您正在尋找一種快速學習如何開始使用Python的方法,那麼您應該查看Andrew Knight在自動化協會的會議,了解如何開始使用Python進行測試。在檢查以下python測試庫之前,這將是一個很好的開始。
  • python製作簡單的圖形化應用(easygui)
    使用python更簡單的圖形化庫easygui實現簡單的圖形化的入門應用!
  • Python自動化用這些知識點就夠了!
    使用xlwings和pandas這兩個就夠了,基本能解決excel自動化的所有問題。xlwing不光可以讀寫excel,還能進行格式調整、VBA操作,非常強大且易於使用。如果你對python自動化處理excel很有興趣,也可以買一本專門的教材來看。ppt自動化python當然是支持ppt的自動化處理,主要的庫有pywin32com、pptx,可以創建、修改ppt文件。
  • 七個Python必備的GUI庫,這次一定要學會!
    GUI(圖形用戶界面),顧名思義就是用圖形的方式,來顯示計算機操作的界面,更加方便且直觀。與之相對應的則是CUI(命令行用戶交互),就是常見的Dos命令行操作,需要記憶一些常用的命令,對於普通人而言,操作起來學習難度還是蠻高的。一個好看又好用的GUI,可以大大提高大家的使用體驗,提高效率。比如你想開發一個計算器,如果只是一個程序輸入,輸出窗口的話,是沒有用戶體驗的。所以開發一個圖像化的小窗口,就變得很有必要。
  • Windows-UI自動化:如何選擇合適的測試框架
    那麼這位老牌選手在Windows UI自動化測試上表現如何呢?官網文檔說明:http://appium.io/docs/en/drivers/windows/【簡單原理】基於屬性定位進行腳本編寫,通過埠連接WebDriverAgent驅動微軟自身的WinAppDriver,對於本機App進行佔用和操作。
  • Python自動化辦公(內容)
    python自動化辦公(python操作Excel、Word、PDF、PPT)python使用openpyxl操作excel;python使用PyPDF2和pdfplumber操作pdf;python使用python-docx操作word;python使用python-pptx操作PPT;python如何自動收發郵件;python製作電話號碼歸屬地查詢工具;一:python
  • 【收藏乾貨】基於Appium、Python的自動化測試環境部署和實踐
    1 導言1.1 編制目的該文檔為選用Appium作為行動裝置原生(Native)、混合(Hybrid)、移動Web(Mobile Web)應用UI自動化測試的相關自動化測試人員、開發人員等提供參考。1.2 預期讀者自動化測試人員、測試代表、開發人員等。