最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

開始之前

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

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

查看屏幕大小

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

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

獲取當前鼠標的位置

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

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

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

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

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

設置暫停時間

使用 pyautogui.PAUSE 變量設置要暫 停的秒數。如,在設置 pyautogui.PAUSE = 1 之后,每個 PyAutoGUI 函數調用 在執(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

主要參數參數:

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

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

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

鼠標點擊

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

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

主要參數:

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

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

clicks:鼠標的點擊次數,默認為 1 次

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

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

duration:如果指定了 X,Y 的值,并且該坐標不是鼠標當前位置的話,那么 duration 參數就可以生效,它表示移動到指定坐標花費的時間,默認為 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)    # 將鼠標拖動到屏幕上相對于當前位置的一個點。

主要參數:

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

duration:如果指定了 X,Y 的值,并且該坐標不是鼠標當前位置的話,那么 duration 參數就可以生效,它表示移動到指定坐標花費的時間,默認為 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() 函數來實現(xiàn)截屏功能。調用 screenshot() 將返回一個 Image 對象。傳入一個文件名字符串將把截圖保存到文件中,并將其作為一個 Image 對象返回。通過 region 關鍵字參數來捕獲指定區(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))

定位功能

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

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

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

消息框功能

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

alert()函數

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

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

??示例:

請?zhí)砑訄D片描述

confirm()函數

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

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

??示例:

請?zhí)砑訄D片描述

prompt()函數

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

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

??示例:

請?zhí)砑訄D片描述

password()函數

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

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

??示例:

請?zhí)砑訄D片描述

鍵盤控制功能

write()函數

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

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

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

press()函數

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

press('num0', presses=1, interval=0.0)
  • keys:傳入的鍵盤字符串
  • presses:操作按鍵次數,默認一次
  • 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()函數

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

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片描述

總結

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

相關文章

  • python對ip地址進行排序、分類的方法詳解

    python對ip地址進行排序、分類的方法詳解

    這篇文章主要介紹了python對ip地址進行排序、分類的方法詳解,IP協(xié)議全稱為“網際互連協(xié)議Internet?Protocol”,IP協(xié)議是TCP/IP體系中的網絡層協(xié)議,需要的朋友可以參考下
    2023-07-07
  • python numpy linspace函數使用詳解

    python numpy linspace函數使用詳解

    本文介紹了Python Numpy庫中的linspace函數,該函數用于生成均勻分布的數值序列,通過示例和詳細參數解釋,幫助讀者理解如何使用linspace函數,最后,對比了linspace和arange函數之間的主要差異,感興趣的朋友跟隨小編一起看看吧
    2024-12-12
  • python 星號(*)的多種用途

    python 星號(*)的多種用途

    這篇文章主要介紹了python 星號(*)的多種用途,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-09-09
  • Python對接支付寶支付自實現(xiàn)功能

    Python對接支付寶支付自實現(xiàn)功能

    這篇文章主要介紹了Python對接支付寶支付自實現(xiàn)功能,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-10-10
  • python中reshape函數用法示例詳解

    python中reshape函數用法示例詳解

    reshape函數是Numpy庫中的一個函數,可以用于改變一個數組的形狀,例如將一個二維數組轉換成一個三維數組,這篇文章主要介紹了python中reshape函數用法詳解,需要的朋友可以參考下
    2023-09-09
  • python遺傳算法之geatpy的深入理解

    python遺傳算法之geatpy的深入理解

    本文主要介紹了python遺傳算法之geatpy的深入理解,主要從geatpy中的各種數據結構一步一步進行學習,具有一定的參考價值,感興趣的可以了解一下
    2022-04-04
  • Python軟件包安裝的三種常見方法

    Python軟件包安裝的三種常見方法

    python擁有非常豐富的擴展包,下面這篇文章主要給大家介紹了關于Python軟件包安裝的三種常見方法,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-07-07
  • Python常見MongoDB數據庫操作實例總結

    Python常見MongoDB數據庫操作實例總結

    這篇文章主要介紹了Python常見MongoDB數據庫操作,結合實例形式詳細總結了Python針對MongoDB數據庫相關pymongo庫安裝以及MongoDB數據庫的增刪改查等相關操作技巧與注意事項,需要的朋友可以參考下
    2018-07-07
  • Python中if語句的使用方法及實例代碼

    Python中if語句的使用方法及實例代碼

    if語句能夠進行條件測試,并依據一定的條件進行具體的操作,下面這篇文章主要給大家介紹了關于Python中if語句的使用方法及實例代碼,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-11-11
  • python OpenCV GrabCut使用實例解析

    python OpenCV GrabCut使用實例解析

    這篇文章主要介紹了python OpenCV GrabCut使用實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-11-11

最新評論

周口市| 兰溪市| 皋兰县| 聊城市| 天祝| 宿州市| 尉氏县| 紫阳县| 罗江县| 汨罗市| 亚东县| 尉犁县| 泸溪县| 黄浦区| 启东市| 新晃| 绵竹市| 衡南县| 阜宁县| 泾源县| 阿合奇县| 义乌市| 富顺县| 任丘市| 阳山县| 左云县| 通许县| 伊吾县| 磐石市| 英吉沙县| 临朐县| 绿春县| 阿拉善左旗| 尤溪县| 宜宾县| 五大连池市| 疏勒县| 阜新市| 鹰潭市| 云梦县| 钦州市|