欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PyAutoGUI圖形用戶界面自動化的超詳細教程

 更新時間:2022年04月14日 15:44:26   作者:Dream丶Killer  
PyautoGUI是一個純Python的自動化工具,能實現(xiàn)用程序自動控制鼠標和鍵盤操作,下面這篇文章主要給大家介紹了關(guān)于PyAutoGUI圖形用戶界面自動化的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下

開始之前

在開始之前,要先安裝所需要的模塊 pyautogui, pyautogui 模塊可以向 Windows 發(fā)送虛擬按鍵和鼠標點擊。

pip install -i https://pypi.douban.com/simple pyautogui

查看屏幕大小

pyautogui.size() 可以獲得屏幕的寬和高的像素數(shù)(整數(shù))。

>>> pyautogui.size()
Size(width=1920, height=1080)
# 也可以直接將寬,高進行保存 x, y = pyautogui.size()

獲取當前鼠標的位置

函數(shù)返回當前位置 X,Y 坐標的元組,如果設(shè)置 x,y 的參數(shù),則會覆蓋返回結(jié)果。

>>> pyautogui.position(x=None, y=None)
Point(x=1437, y=817)

檢查指定坐標是否在屏幕上

要檢查 X,Y 坐標是否在屏幕上,將它們(支持兩個整數(shù),列表,元組)傳遞給 onScreen() 函數(shù),如果它們在屏幕的邊界內(nèi),則返回 True ,否則返回 False 。

>>> pyautogui.size()
(1920, 1080)
>>> pyautogui.onScreen(1920, 1080)
False
>>> pyautogui.onScreen(1919, 1079)
True

設(shè)置暫停時間

使用 pyautogui.PAUSE 變量設(shè)置要暫 停的秒數(shù)。如,在設(shè)置 pyautogui.PAUSE = 1 之后,每個 PyAutoGUI 函數(shù)調(diào)用 在執(zhí)行動作之后,都會等待一秒。

>>> pyautogui.PAUSE = 1

鼠標功能

移動鼠標

移動鼠標到指定位置。

pyautogui.moveTo(x=None, y=None, duration=0.0) # 移動鼠標到指定位置
pyautogui.move(xOffset=None, yOffset=None, duration=0.0) # 在PyAutoGUI 1.0,move 替換了 moveRel,但moveRel也可以使用

pyautogui.moveTo(200, 300, duration=0.5)   # 移動到坐標(200,300)
pyautogui.move(200, 300, duration=0.5)     # 從當前鼠標位置向右移動 200 向下移動 300

主要參數(shù)參數(shù):

x/xOffset:X軸坐標,moveTo() 中取值0或正整數(shù)值,move()/moveRel() 中取值可以為負數(shù),代表以當前位置向左移動

y/yOffset:Y軸坐標,moveTo() 中取值0或正整數(shù)值,move()/moveRel() 中取值可以為負數(shù),代表以當前位置向上移動

duration:移動到指定坐標花費的時間,默認為0,代表立即完成,單位為s

鼠標點擊

使用 click() 完成鼠標點擊操作。

>>> pyautogui.click(x=None, y=None, clicks=1, interval=0.0, button=PRIMARY, duration=0.0)

主要參數(shù):

x:X軸坐標,默認為 None,即當前X軸坐標

y:Y軸坐標,默認為 None,即當前Y軸坐標(注:X,Y 軸的坐標只能同時指定,不能只指定某一個)

clicks:鼠標的點擊次數(shù),默認為 1 次

interval:int 或浮點數(shù),表示每次單擊之間需要等待多少秒,默認值為0.0,表示單擊之間沒有暫停

button:可選 LEFT、MIDDLE、RIGHT、PRIMARY(左鍵)或 SECONDARY(右鍵)。它的默認值是 PRIMARY

duration:如果指定了 X,Y 的值,并且該坐標不是鼠標當前位置的話,那么 duration 參數(shù)就可以生效,它表示移動到指定坐標花費的時間,默認為 0,表示立即移動。

?? 其他點擊操作:

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

鼠標拖動

按住鼠標的某個鍵進行拖動。

pyautogui.dragTo(x=None, y=None, duration=0.0, button=PRIMARY)     # 將鼠標拖動到指定位置  

pyautogui.drag(xOffset=0, yOffset=0, duration=0.0, button=PRIMARY)    # 將鼠標拖動到屏幕上相對于當前位置的一個點。

主要參數(shù):

x,y/xOffset,yOffset:x 和 y 指明鼠標事件發(fā)生的位置。如果為 None,則使用鼠標當前位置。如果是浮點值,則將其舍入。如果在屏幕邊界之外,則事件發(fā)生在屏幕邊緣。

duration:如果指定了 X,Y 的值,并且該坐標不是鼠標當前位置的話,那么 duration 參數(shù)就可以生效,它表示移動到指定坐標花費的時間,默認為 0,表示立即移動。

button:可選 LEFT、MIDDLE、RIGHT、PRIMARY(左鍵)或 SECONDARY(右鍵)。它的默認值是 PRIMARY

??示例:

請?zhí)砑訄D片描述

鼠標滾動

垂直滾動,在不同平臺滾動的效果可能不一樣。

>>> pyautogui.scroll(100)   # 向上滾動100
>>> pyautogui.scroll(-100)  # 向下滾動100
>>> pyautogui.scroll(100, x=200, y=200)  # 移動到200, 然后執(zhí)行滾動

水平滾動,(適用與 OS X 和 Linux 平臺上)。

>>> pyautogui.hscroll(100)   # 向右滾動100
>>> pyautogui.hscroll(-100)   # 向左滾動100

??示例:

請?zhí)砑訄D片描述

屏幕功能

截屏功能

使用 screenshot() 函數(shù)來實現(xiàn)截屏功能。調(diào)用 screenshot() 將返回一個 Image 對象。傳入一個文件名字符串將把截圖保存到文件中,并將其作為一個 Image 對象返回。通過 region 關(guān)鍵字參數(shù)來捕獲指定區(qū)域,只需傳遞一個由 left, top, width, height 組成的元組(left,top為左上角坐標)。

>>> import pyautogui
>>> pyautogui.screenshot()
>>> pyautogui.screenshot(r'C:\Users\pc\Desktop\test.png')
>>> pyautogui.screenshot(r'C:\Users\pc\Desktop\test.png', region=(300, 300, 500, 1000))

定位功能

如果不知道要點擊的內(nèi)容在屏幕上的確切坐標,就不能調(diào)用 moveTo()click() 函數(shù)。但是,如果有按鈕的圖像,如下面這個圖片,那就可以調(diào)用 locateOnScreen('圖片路徑') 函數(shù)來獲取坐標。返回值是一個元組:(left, top, width, height)。這個元組可以傳遞給 center() 來獲得該區(qū)域中心的坐標(X,Y)。如果在屏幕上找不到圖像,locateOnScreen() 將引發(fā) ImageNotFoundException 異常。

>>> location = pyautogui.locateOnScreen('圖片路徑')
>>> pyautogui.center(location)

還可以將 grayscale=True 傳遞給 locateOnScreen,以略微加速(大約 30%)。這降低了圖像和截圖的顏色飽和度,加快了定位速度,但可能會導(dǎo)致錯誤匹配。

消息框功能

PyAutoGUI 利用 PyMsgBox 中的消息框函數(shù)提供了一種跨平臺的純 Python 方法來顯示 javascript 樣式的消息框。

alert()函數(shù)

>>> pyautogui.alert(text='text', title='title', button='alert!')
'alert!'

顯示一個帶有文本的簡單消息框和一個 alert! 按鈕。單擊按鈕后返回 button 的值。

??示例:

請?zhí)砑訄D片描述

confirm()函數(shù)

顯示帶有多個按鈕的消息框。按鈕的數(shù)量和文字可以自己設(shè)置。單擊按鈕返回該按鈕的文本。

>>> pyautogui.confirm(text='text', title='title', buttons=['再考慮一下', '卸載'])
'卸載'

??示例:

請?zhí)砑訄D片描述

prompt()函數(shù)

顯示一個包含 確認,取消 按鈕和文本輸入欄的消息框,用戶可以輸入指定內(nèi)容。當點擊確認按鈕后,返回輸入框中的值;若點擊取消,則返回 None 。

pyautogui.prompt(text='text', title='title', default='請輸入文本信息')

??示例:

請?zhí)砑訄D片描述

password()函數(shù)

顯示一個包含 確認,取消 按鈕和文本輸入欄的消息框,輸入的字符顯示為"*"。如果點擊確認則返回輸入的文本;如果單擊“取消”,則為 None 。

pyautogui.password(text='text', title='title', default='密碼', mask='*')

??示例:

請?zhí)砑訄D片描述

鍵盤控制功能

write()函數(shù)

write() 函數(shù)將在傳入的字符串中鍵入字符。若要在按下每個字符鍵之間添加延遲間隔,interval 參數(shù)可以設(shè)置每個按鍵之間添加延遲。

>>> pyautogui.write('Hello world!', interval=0.25) # 每個字符間隔0.25秒

注意:pyautogui 并不支持輸入框自動聚焦,所有輸入之前先要點擊輸入框位置。

press()函數(shù)

press() 函數(shù)執(zhí)行的操作相當于鼠標操作的 click(),它接收傳遞給它的字符串。

press('num0', presses=1, interval=0.0)
  • keys:傳入的鍵盤字符串
  • presses:操作按鍵次數(shù),默認一次
  • interval:每次按鍵的間隔時間,默認0

keys 所有取值如下:

['\t', '\n', '\r', ' ', '!', '"', '#', '$', '%', '&', "'", '(', ')', '*', '+',
',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';'
, '<', '=', '>', '?', '@', '[', '\\', ']', '^', '_', '`', 'a', 'b', 'c', 'd',
'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't'
, 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', 'accept', 'add', 'alt',
'altleft', 'altright', 'apps', 'backspace', 'browserback', 'browserfavorites',
'browserforward', 'browserhome', 'browserrefresh', 'browsersearch','browserstop'
,'capslock', 'clear', 'convert', 'ctrl', 'ctrlleft','ctrlright', 'decimal',
'del', 'delete', 'divide', 'down', 'end', 'enter', 'esc', 'escape', 'execute',
'f1', 'f10', 'f11', 'f12', 'f13', 'f14', 'f15', 'f16', 'f17', 'f18', 'f19', 'f2'
, 'f20', 'f21', 'f22', 'f23', 'f24', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9'
, 'final', 'fn', 'hanguel', 'hangul','hanja', 'help', 'home', 'insert', 'junja'
, 'kana', 'kanji', 'launchapp1', 'launchapp2', 'launchmail', 'launchmediaselect'
, 'left', 'modechange', 'multiply', 'nexttrack', 'nonconvert'
, 'num0', 'num1', 'num2', 'num3', 'num4', 'num5', 'num6', 'num7'
, 'num8', 'num9', 'numlock', 'pagedown', 'pageup', 'pause', 'pgdn', 'pgup'
, 'playpause', 'prevtrack', 'print', 'printscreen', 'prntscrn', 'prtsc'
, 'prtscr', 'return', 'right', 'scrolllock', 'select', 'separator', 'shift'
, 'shiftleft', 'shiftright', 'sleep', 'space', 'stop', 'subtract', 'tab', 'up'
, 'volumedown', 'volumemute', 'volumeup', 'win', 'winleft', 'winright', 'yen'
, 'command', 'option', 'optionleft', 'optionright']

hotkey()函數(shù)

接收多個字符串參數(shù),順序按下,再按相反的順序釋放。

pyautogui.hotkey('ctrl', 'shift', 'esc')

相當于
pyautogui.keyDown('ctrl')    # 按下 ctrl 
pyautogui.keyDown('shift')    # 按下 shift
pyautogui.keyDown('esc')    # 按下 esc
pyautogui.keyUp('esc')    # 釋放 ctrl 
pyautogui.keyUp('shift')    # 釋放 shift
pyautogui.keyUp('ctrl') # 釋放 esc

??示例:

請?zhí)砑訄D片描述

總結(jié)

到此這篇關(guān)于PyAutoGUI圖形用戶界面自動化的文章就介紹到這了,更多相關(guān)PyAutoGUI圖形用戶界面自動化內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python 階乘累加和的實例

    python 階乘累加和的實例

    今天小編就為大家分享一篇python 階乘累加和的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • Flask框架URL管理操作示例【基于@app.route】

    Flask框架URL管理操作示例【基于@app.route】

    這篇文章主要介紹了Flask框架URL管理操作,結(jié)合實例形式分析了@app.route進行URL控制的相關(guān)操作技巧,需要的朋友可以參考下
    2018-07-07
  • 一篇文章帶你搞懂Python類的相關(guān)知識

    一篇文章帶你搞懂Python類的相關(guān)知識

    今天我們要說的是面向?qū)ο蟮暮诵?----類,類能幫我們把復(fù)雜的事情變得有條理,有順序,希望大家通過學(xué)習(xí)類能改善自己的編碼風(fēng)格,使代碼變得更為好看,更加通俗易懂,需要的朋友可以參考下
    2021-05-05
  • 詳解Python如何利用turtle繪制中國結(jié)

    詳解Python如何利用turtle繪制中國結(jié)

    春節(jié)是中國特有的傳統(tǒng)節(jié)日,中國結(jié)是中華民族特有的純粹的文化精髓,富含豐富的文化底蘊。本文將利用turtle繪制一個中國結(jié),需要的可以參考一下
    2022-02-02
  • 基于Python解密仿射密碼

    基于Python解密仿射密碼

    這篇文章主要介紹了基于Python解密仿射密碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-10-10
  • 總結(jié)python爬蟲抓站的實用技巧

    總結(jié)python爬蟲抓站的實用技巧

    很多人學(xué)用python,用得最多的還是各類爬蟲腳本:有寫過抓代理本機驗證的腳本,有寫過自動收郵件的腳本,還有寫過簡單的驗證碼識別的腳本,那么我們今天就來總結(jié)下python爬蟲抓站的一些實用技巧。
    2016-08-08
  • Python學(xué)習(xí)之函數(shù)的定義與使用詳解

    Python學(xué)習(xí)之函數(shù)的定義與使用詳解

    函數(shù)是具有某種特定功能的代碼塊,可以重復(fù)使用(在前面數(shù)據(jù)類型相關(guān)章節(jié)。它使得我們的程序更加模塊化,不需要編寫大量重復(fù)的代碼。本文將詳細介紹Python中函數(shù)的定義與使用,感興趣的可以學(xué)習(xí)一下
    2022-03-03
  • Python批量修改文本文件內(nèi)容的方法

    Python批量修改文本文件內(nèi)容的方法

    這篇文章主要介紹了Python批量修改文本文件內(nèi)容的方法的相關(guān)資料,需要的朋友可以參考下
    2016-04-04
  • python函數(shù)和python匿名函數(shù)lambda詳解

    python函數(shù)和python匿名函數(shù)lambda詳解

    這篇文章主要介紹了python函數(shù)和python匿名函數(shù)lambda,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-09-09
  • Python3.x+迅雷x 自動下載高分電影的實現(xiàn)方法

    Python3.x+迅雷x 自動下載高分電影的實現(xiàn)方法

    這篇文章主要介紹了Python3.x+迅雷x 自動下載高分電影的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01

最新評論