国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python--界面UI控制,模擬鍵鼠操作的模塊pyautogui(超詳細(xì)用法)

這篇具有很好參考價(jià)值的文章主要介紹了Python--界面UI控制,模擬鍵鼠操作的模塊pyautogui(超詳細(xì)用法)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一、簡(jiǎn)介

PyAutoGUI是一個(gè)Python 第三方庫(kù),需要pip install 安裝?。它允許我們通過(guò)編程方式模擬鼠標(biāo)和鍵盤(pán)的操作,窗口操作,以及界面的截圖匹配。由于它是照搬人的操作,底層沒(méi)有套牢在Windows系統(tǒng),所以它可以跨平臺(tái)。

二、安裝

通過(guò)pip命令可以輕松安裝PyAutoGUI

pip install pyautogui -i https://pypi.tuna.tsinghua.edu.cn/simple

三、主要功能

  • 鼠標(biāo)操作:PyAutoGUI可以模擬鼠標(biāo)移動(dòng)、點(diǎn)擊、拖拽等操作,可以控制鼠標(biāo)的位置和點(diǎn)擊的坐標(biāo)。
  • 鍵盤(pán)操作:PyAutoGUI可以模擬鍵盤(pán)按鍵和組合鍵的操作,如按下和釋放按鍵、輸入文本等。
  • 屏幕操作:PyAutoGUI集成了pyscreeze模塊,可以直接調(diào)用函數(shù)截屏、查找指定圖像的位置等
  • 延時(shí)控制:PyAutoGUI可以控制鼠標(biāo)和鍵盤(pán)操作的延時(shí),以確保操作的正確性和穩(wěn)定性。
  • 窗口控制:PyautoGUI集成了pygetwindow模塊,可以直接調(diào)用函數(shù)獲取窗口信息、控制窗口大小、移動(dòng)、關(guān)閉等

3.1、基礎(chǔ)功能

獲取鼠標(biāo)當(dāng)前位置

import pyautogui
print(pyautogui.position()) # Point(x=1964, y=1338)

獲取屏幕大小?

import pyautogui
print(pyautogui.size())  # Size(width=3840, height=2160)

判斷坐標(biāo)是否在屏幕中

import pyautogui
print(pyautogui.onScreen(200, 200))
print(pyautogui.onScreen(2000, 4000))

3.2、GUI控制功能

自動(dòng)防故障功能

默認(rèn)這項(xiàng)功能為T(mén)rue,意味著:當(dāng)鼠標(biāo)的指針在屏幕的最坐上方,程序會(huì)報(bào)錯(cuò);目的是為了防止程序無(wú)法停止;

import pyautogui
print(pyautogui.FAILSAFE)
pyautogui.FAILSAFE = False
print(pyautogui.FAILSAFE)

停頓功能

這個(gè)停頓只是在用pyautogui控制鼠標(biāo)和鍵盤(pán)時(shí)生效,如果是執(zhí)行一般功能的命令,則該停頓不生效

import pyautogui
pyautogui.PAUSE = 5
pyautogui.moveTo(200, 200, duration=1);pyautogui.moveTo(2000, 1000, duration=1)

3.3、鼠標(biāo)控制功能

?控制移動(dòng)鼠標(biāo)

????????移動(dòng)到指定位置

import pyautogui
pyautogui.moveTo(100,300,duration=1) ?#(100,300)是坐標(biāo), duration 的作用是設(shè)置移動(dòng)時(shí)間,單位秒,所有的gui函數(shù)都有這個(gè)參數(shù),而且都是可選參數(shù) 相對(duì)移動(dòng),按方向移動(dòng)

? ? ? ? ?相對(duì)移動(dòng),按方向移動(dòng)

import pyautogui
pyautogui.moveRel(100,500,duration=4) ?# 第一個(gè)參數(shù)是左右移動(dòng)像素值,第二個(gè)是上下移動(dòng)像素值

控制鼠標(biāo)點(diǎn)擊

????????單擊鼠標(biāo)

import pyautogui
pyautogui.click(10,10) ?# 鼠標(biāo)點(diǎn)擊指定位置,默認(rèn)左鍵
pyautogui.click(10,10,button='left') ?# 單擊左鍵
pyautogui.click(1000,300,button='right') ?# 單擊右鍵
pyautogui.click(1000,300,button='middle') ?# 單擊中間 

? ? ? ? 雙擊鼠標(biāo)

import pyautogui
pyautogui.doubleClick(10,10) ?# 指定位置,雙擊左鍵
pyautogui.rightClick(10,10) ?# 指定位置,雙擊右鍵
pyautogui.middleClick(10,10) ?# 指定位置,雙擊中鍵 

????????按下和釋放分解:點(diǎn)擊&釋放

import pyautogui
pyautogui.mouseDown()
pyautogui.mouseUp() # 兩句命令相當(dāng)于pyautogui.press()

pyautogui.mouseDown(button='right') # 按下右鍵
pyautogui.mouseUp(button='right', x=100, y=200) # 移動(dòng)到(100,200),釋放右鍵

控制鼠標(biāo)拖動(dòng)

????????拖動(dòng)到指定位置

import pyautogui
pyautogui.dragTo(100,300,duration=1) ?# 將鼠標(biāo)拖動(dòng)到指定的坐標(biāo)

????????拖動(dòng)到相對(duì)位置,按方向拖動(dòng)

import pyautogui
pyautogui.dragRel(100,500,duration=4) ?# 第一個(gè)參數(shù)是左右移動(dòng)像素值,第二個(gè)是上下移動(dòng)像素值, 向右拖動(dòng)100px,向下拖動(dòng)500px, 這個(gè)過(guò)程持續(xù) 4 秒鐘

控制鼠標(biāo)滾動(dòng)

????????控制鼠標(biāo)滾動(dòng)的函數(shù)是scroll(), 傳入一個(gè)整數(shù)的參數(shù),說(shuō)明向上或向下滾動(dòng)多少個(gè)單位;單位根據(jù)操作系統(tǒng)不同而不同

import pyautogui
pyautogui.scroll(300) ?# scroll up 300 "clicks"
pyautogui.scroll(10) # scroll up 10 "clicks"
pyautogui.scroll(10, x=100, y=100) # move mouse cursor to 100, 200, then scroll up 10 "clicks" 

補(bǔ)間/緩動(dòng)函數(shù)(import Pytweening)

????????指示鼠標(biāo)移動(dòng)到目標(biāo)位置時(shí)的進(jìn)度,可以使鼠標(biāo)移動(dòng)變得更漂亮

3.4、鍵盤(pán)控制功能

按鍵

import pyautogui
pyautogui.press('enter') ? # 按enter鍵,并釋放
pyautogui.press('f1')
pyautogui.press(['left', 'left', 'left'])
pyautogui.press('left', presses=3) ?# 可以設(shè)置按鍵次數(shù)

組合按鍵,按下&釋放

例如:要在按住 Shift 鍵的同時(shí)按向左箭頭鍵

import pyautogui
pyautogui.keyDown('shift') ?# 按下shift鍵
pyautogui.press('left') ?# 按左鍵,并釋放
pyautogui.keyUp('shift') ? # 釋放shift鍵

輸入字符串

import pyautogui
pyautogui.write('Hello world!', interval=0.25)  # interval 每個(gè)字符輸入間隔時(shí)間

hold()上下文管理器

import pyautogui
with pyautogui.hold('shift'):
    pyautogui.press(['left','left','left'])

熱鍵hotkey()函數(shù)

hotkey()可以傳遞多個(gè)按鍵字符串,這些按鍵字符串將按順序按下,然后按相反的順序釋放。

import pyautogui
pyautogui.hotkey('ctrl',?'shift',?'esc)
# 相當(dāng)于以下代碼
# pyautogui.keyDown('ctrl')
# pyautogui.keyDown('shift')
# pyautogui.keyDown('esc')
# pyautogui.keyUp('esc')
# pyautogui.keyUp('shift')
# pyautogui.keyUp('ctrl')

3.5、消息框功能

警報(bào)框

Python--界面UI控制,模擬鍵鼠操作的模塊pyautogui(超詳細(xì)用法),python,開(kāi)發(fā)語(yǔ)言

import pyautogui
pyautogui.alert(text='This is an alert box', title='Test', button='OK') ? # 顯示一個(gè)簡(jiǎn)單的消息框,其中包含文本和一個(gè)“確定”按鈕。返回button鍵的值。

確認(rèn)框/選擇框

Python--界面UI控制,模擬鍵鼠操作的模塊pyautogui(超詳細(xì)用法),python,開(kāi)發(fā)語(yǔ)言

import pyautogui
pyautogui.confirm('選擇一項(xiàng)', buttons=['A', 'B', 'C'])
pyautogui.confirm(text='',?title='',?buttons=['OK',?'N'])   # 顯示一個(gè)選擇框,有多個(gè)按鍵,返回按鍵的值

提示輸入框

Python--界面UI控制,模擬鍵鼠操作的模塊pyautogui(超詳細(xì)用法),python,開(kāi)發(fā)語(yǔ)言

import pyautogui
pyautogui.prompt(text='',?title=''?,?default='')   
# 顯示帶有文本輸入的消息框以及“確定”和“取消”按鈕。返回輸入的文本,如果單擊“取消”,則返回None

密碼輸入框

Python--界面UI控制,模擬鍵鼠操作的模塊pyautogui(超詳細(xì)用法),python,開(kāi)發(fā)語(yǔ)言

import pyautogui
pyautogui.password(text='', title='', default='', mask='*’)
# 顯示帶有文本輸入的消息框以及“確定”和“取消”按鈕。鍵入的字符顯示為*。返回輸入的文本,如果單擊“取消”,則返回None

3.6 桌面截圖,圖片匹配,像素點(diǎn)RGB信息

源碼,從源碼中可看到,引用了PyScreeze模塊、Pillow模塊,這兩個(gè)模塊會(huì)在安裝pyautogui模塊時(shí)一起安裝。

引用的方法是紅色框住的這些

Python--界面UI控制,模擬鍵鼠操作的模塊pyautogui(超詳細(xì)用法),python,開(kāi)發(fā)語(yǔ)言

截圖功能

import pyautogui
pyautogui.screenshot("C:\\Users\\XX\\test.png") ?
# 全屏截圖,傳遞一個(gè)文件名字符串會(huì)將截圖保存到一個(gè)文件中,并將其作為一個(gè)Image對(duì)象返回。 

pyautogui.screenshot("C:\\Users\\XX\\test.png", region=(0, 0, 300, 400))? ? ? 
# 非全屏截圖,可選的region關(guān)鍵字參數(shù)??梢詡鬟f一個(gè)包含要捕獲區(qū)域的左、頂、寬、高的四個(gè)整數(shù)元組

圖片匹配

import pyautogui
pyautogui.locateAll(needleImage, haystackImage, grayscale=None, region=None)
# # 返回一個(gè)生成器,用tuple轉(zhuǎn)換一下生成器,得到一個(gè)元組,元組中的每個(gè)元素是BOX類的實(shí)例對(duì)象,未匹配到則返回空元組

pyautogui.locate(needleImage, haystackImage)
# 返回值就是上圖的b[0],即BOX類的一個(gè)實(shí)例對(duì)象,如果未匹配則報(bào)異常

pyautogui.locateAllOnScreen(needleImage, minSearchTime)
# 與locateAll()相比第二個(gè)參數(shù)變成了minSearchTime,可以理解最小匹配時(shí)間,會(huì)在這個(gè)時(shí)間中一直從當(dāng)前界面找needleImage圖,直至找到返回,返回值與pyautogui.locateAll一樣,是返回一個(gè)生成器

pyautogui.locateOnScreen(needleImage, minSearchTime)
# 返回值是BOX類的一個(gè)實(shí)例對(duì)象,如果未匹配則報(bào)異常

pyautogui.locateCenterOnScreen(needleImage)
# 匹配失敗返回異常,匹配成功返回一個(gè)Point類的一個(gè)實(shí)例,實(shí)例屬性x, y坐標(biāo),匹配到的圖片中心點(diǎn)

pyautogui.locateOnWindow(image, title)
# 里面使用了pygetwindow模塊,匹配title的UI界面中是否包含image,返回值同pyautogui.locateOnScreen

像素點(diǎn)RGB信息

import pyautogui
pyautogui.center((10, 10, 6, 8))
# Point(x=13, y=14)
# 返回一個(gè)Point類的一個(gè)實(shí)例,tuple轉(zhuǎn)換后為一個(gè)元組

pyautogui.pix(x, y)
# 返回屏幕像素在x, y處的顏色作為RGB元組,每種顏色表示從0到255。(x,y)像素點(diǎn)的(r, g, b)

pyautogui.pixelMatchesColor(x, y, (r, g, b))
pyautogui.pixelMatchesColor(200,500, (60,63,65))
# 返回True or False,即像素點(diǎn)的顏色匹配是否一致

3.7、窗口控制功能

PyautoGUI集成了pygetwindow模塊,可以直接調(diào)用函數(shù)獲取窗口信息、控制窗口大小、移動(dòng)、關(guān)閉等

獲得窗口對(duì)象

????????獲得當(dāng)前活動(dòng)(聚焦)窗口的對(duì)象
import pyautogui
pyautogui.getActiveWindow() ?# 返回當(dāng)前活動(dòng)(聚焦)窗口的對(duì)象
????????獲得所有可見(jiàn)窗口的窗口對(duì)象列表
import pyautogui
pyautogui.getAllWindows() ?# 返回所有可見(jiàn)窗口的窗口對(duì)象列表
????????獲得當(dāng)前活動(dòng)(聚焦)窗口的標(biāo)題
import pyautogui
pyautogui.getActiveWindowTitle() ? # 返回當(dāng)前活動(dòng)(聚焦)窗口的標(biāo)題
????????獲得所有可見(jiàn)窗口的標(biāo)題字符串列表
import pyautogui
pyautogui.getAllTitles() ?# 返回所有可見(jiàn)窗口的標(biāo)題字符串列表
????????獲得標(biāo)題文本中包含字符'ibox'的窗口對(duì)象列表
import pyautogui
pyautogui.getWindowsWithTitle(“ibox”) ? # 返回標(biāo)題文本中包含子字符'ibox'的窗口對(duì)象列表。
????????獲得包含坐標(biāo)點(diǎn)的窗口對(duì)象列表
import pyautogui
pyautogui.getWindowsAt(2000, 2000) ? # 返回一個(gè)窗口對(duì)象列表,這些窗口包含坐標(biāo)(2000, 2000)

控制窗口

? ? ? ? 窗口對(duì)象的屬性
import pyautogui
win = pyautogui.getWindowsWithTitle('Untitled')[0]  # win是title是'Untitled'的窗口對(duì)象

# 窗口對(duì)象的屬性
win.size  #(132,100)返回元組,窗口大小
win.width  # 返回int,窗口的寬度
win.height  # 返回int,窗口的高度
win.topleft  # (10,10)返回元組,窗口最左上角坐標(biāo) 
win.bottomright  # (200,200)返回元組,窗口最右下角坐標(biāo)
win.top  # 返回int,窗口上邊緣的y坐標(biāo)值
win.left  # 返回int,窗口左邊緣的x坐標(biāo)值
win.isMaximized  # 返回bool,窗口是否是最大窗口
win.isMinimized   # 返回bool,窗口是否是最小窗口
? ? ? ? 窗口對(duì)象的方法
import pyautogui
win = pyautogui.getWindowsWithTitle('Untitled')[0]  # win是title是'Untitled'的窗口對(duì)象

# 窗口對(duì)象的方法
win.maximize()   # 窗口最大化
win.minimize()   # 窗口最大化
win.restore()   # 恢復(fù)窗口大小
win.resize(200,200)   # 窗口x軸增加200,y軸增加200
win.resizeTo(200,200)   # 窗口變化至x軸寬度200,y軸寬度200
win.move(10, 10)   # 窗口相對(duì)當(dāng)前位置x軸移動(dòng)10,y軸移動(dòng)10
win.moveTo(10, 10)   # 窗口移動(dòng)至10,y軸移動(dòng)至10,左上角坐標(biāo)(10,10)

四、應(yīng)用

???????自動(dòng)化測(cè)試

????????可以模擬用戶的操作,用于自動(dòng)化測(cè) ?試各種軟件和系統(tǒng)的功能。 ?

???????數(shù)據(jù)采集和處理

????????可以幫助自動(dòng)化從網(wǎng)頁(yè)或應(yīng)用程序中采集數(shù)據(jù),并進(jìn)行處理和分析。

???????軟件演示和教程錄制

????????可以用于自動(dòng)化演示軟件的功能和操作,錄制教程視頻等。 ?

???????游戲輔助工具

????????可以用來(lái)制作游戲輔助工具,自動(dòng)化完成一些重復(fù)性操作。

五、官方文檔

???????Pyautogui

????????https://pyautogui.readthedocs.io/en/latest/msgbox.html ?

???????Pygetwindow ?

????????https://pygetwindow.readthedocs.io/en/latest/# ?

???????Pillow/PIL ?

????????https://pillow.readthedocs.io/en/latest/# ? ?

???????Pyscreeze ?

????????https://github.com/asweigart/pyscreeze文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-751826.html

到了這里,關(guān)于Python--界面UI控制,模擬鍵鼠操作的模塊pyautogui(超詳細(xì)用法)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包