<kbd id="5sdj3"></kbd>
<th id="5sdj3"></th>

  • <dd id="5sdj3"><form id="5sdj3"></form></dd>
    <td id="5sdj3"><form id="5sdj3"><big id="5sdj3"></big></form></td><del id="5sdj3"></del>

  • <dd id="5sdj3"></dd>
    <dfn id="5sdj3"></dfn>
  • <th id="5sdj3"></th>
    <tfoot id="5sdj3"><menuitem id="5sdj3"></menuitem></tfoot>

  • <td id="5sdj3"><form id="5sdj3"><menu id="5sdj3"></menu></form></td>
  • <kbd id="5sdj3"><form id="5sdj3"></form></kbd>

    #pyautogui & pyperclip# 基于pyautogui & pyperclip的UI 自動(dòng)

    共 4754字,需瀏覽 10分鐘

     ·

    2023-01-12 12:30

     文章所涉及內(nèi)容更多來(lái)自網(wǎng)絡(luò),在此聲明,并感謝知識(shí)的貢獻(xiàn)者!

    pyautogui

    PyAutoGUI簡(jiǎn)介:

    pyautogui最方便的地方就是,你不需要去用代碼定位元素,你只需要用截圖就行,例如你要識(shí)別桌面上某個(gè)應(yīng)用,你只需要截圖這個(gè)應(yīng)用,然后通過(guò)這個(gè)截圖和當(dāng)前桌面對(duì)比即可找到圖標(biāo)的位置


    pyautogui官網(wǎng):

    https://pyautogui.readthedocs.io/en/latest/



    pyautogui組件:

    鼠標(biāo)、鍵盤(pán)、對(duì)話框、屏幕



    Pyautogui教程:

    import pyautogui as auto

    import pyperclip

    import time

    #獲取屏幕大小

    screen_width,screen_height=auto.size()

    #獲取鼠標(biāo)位置(X,Y)

    mouse_x,mouse_y=auto.position()

    #根據(jù)坐標(biāo)系移動(dòng)鼠標(biāo)

    auto.moveTo(100,150)

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

    auto.click()

    #根據(jù)坐標(biāo)系點(diǎn)擊鼠標(biāo)

    auto.click(100,150)

    #尋找屏幕上的圖片并進(jìn)行點(diǎn)擊

    auto.click('button.png')

    #根據(jù)像素移動(dòng)

    auto.move(400,0)

    #雙擊鼠標(biāo)

    auto.doubleClick()

    #點(diǎn)擊ESC鍵

    auto.press('esc')

    #按下shift鍵的同時(shí),連按左鍵四下

    with auto.hold('shift'):

    auto.press(['left','left','left','left'])

    #按下快捷鍵

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

    #彈出窗口

    auto.alert('This is the message to display.')

    #模擬鍵盤(pán)輸入

    pyautogui.write('Hello world!', interval=0.25)

    #按壓鼠標(biāo)拖拽

    while distance > 0:

    pyautogui.drag(distance, 0, duration=0.5)   # move right

    distance -= 5

    pyautogui.drag(0, distance, duration=0.5)   # move down

    pyautogui.drag(-distance, 0, duration=0.5)  # move left

    distance -= 5

    pyautogui.drag(0, -distance, duration=0.5) # move up


    pyautogui 前置操作


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

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

    pyautogui.FAILSAFE =False


    停頓功能

    # 意味著所有pyautogui的指令都要暫停一秒;其他指令不會(huì)停頓;這樣做,可以防止鍵盤(pán)鼠標(biāo)操作太快;

    pyautogui.PAUSE = 1


    pyautogui 鼠標(biāo)操作


    獲取屏幕分辨率

    print(pyautogui.size()) # 返回所用顯示器的分辨率;輸出:Size(width=1920, height=1080)

    width,height = pyautogui.size()

    print(width,height) # 1920 1080


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

    # 將鼠標(biāo)移動(dòng)到指定的坐標(biāo);duration的作用是設(shè)置移動(dòng)時(shí)間,所有的gui函數(shù)都有這個(gè)參數(shù),而且都是可選參數(shù);

    # 向右移動(dòng)100px,向下移動(dòng)500px, 這個(gè)過(guò)程持續(xù) 1 秒鐘;

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


    獲取鼠標(biāo)位置

    print(pyautogui.position()) # 得到當(dāng)前鼠標(biāo)位置;輸出:Point(x=200, y=800)


    鼠標(biāo)單擊

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

    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)雙擊

    pyautogui.doubleClick(10,10) # 指定位置,雙擊左鍵

    pyautogui.rightClick(10,10) # 指定位置,雙擊右鍵

    pyautogui.middleClick(10,10) # 指定位置,雙擊中鍵


    鼠標(biāo)點(diǎn)擊與釋放

    pyautogui.mouseDown() # 鼠標(biāo)按下

    pyautogui.mouseUp() # 鼠標(biāo)釋放


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

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

    # 將鼠標(biāo)拖動(dòng)到指定的坐標(biāo);duration的作用是設(shè)置移動(dòng)時(shí)間,所有的gui函數(shù)都有這個(gè)參數(shù),而且都是可選參數(shù)

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

    # 按方向拖動(dòng)

    # 向右拖動(dòng)100px,向下拖動(dòng)500px, 這個(gè)過(guò)程持續(xù) 1 秒鐘

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


    鼠標(biāo)滾輪

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

    pyautogui.scroll(300) # 向下滾動(dòng)300個(gè)單位;


    pyautogui 鍵盤(pán)操作


    鍵盤(pán)輸入函數(shù)

    -pyautogui.keyDown() :模擬按鍵按下;

    -pyautogui.keyUp() :模擬按鍵釋放;

    -pyautogui.press() :# 就是調(diào)用keyDown() & keyUp(),模擬一次按鍵;

    -pyautogui.typewrite('this',0.5) :第一參數(shù)是輸入內(nèi)容,第二個(gè)參數(shù)是每個(gè)字符間的間隔時(shí)間;

    -pyautogui.typewrite(['T','h','i','s']):typewrite 還可以傳入單字母的列表;


    鍵盤(pán)事件

    pyautogui.keyDown('shift') # 按下shift

    pyautogui.press('4') # 按下 4

    pyautogui.keyUp('shift') # 釋放 shift


    緩慢輸出

    pyautogui.typewrite('$*……%……¥', 0.5)

    鍵盤(pán)特殊順序輸出

    pyautogui.typewrite(['T','i','s','left','left','h',]) # 輸出:This


    特殊按鍵說(shuō)明

    鍵盤(pán)字符串   說(shuō)明

    enter(或return 或 \n)       回車

    esc ESC鍵

    shiftleft, shiftright 左右SHIFT鍵

    altleft, altright 左右ALT鍵

    ctrlleft, ctrlright 左右CTRL鍵

    tab (\t) TAB鍵

    backspace, delete BACKSPACE 、DELETE鍵

    pageup, pagedown PAGE UP 和 PAGE DOWN鍵

    home, end HOME和 END鍵

    up, down, left,right 箭頭鍵

    f1, f2, f3…. f12 F1…….F12鍵

    volumemute, volumedown,volumeup 聲音變大變小靜音(有些鍵盤(pán)沒(méi)有)

    pause PAUSE鍵,暫停鍵

    capslock CAPS LOCK 鍵

    numlock NUM LOCK 鍵

    scrolllock SCROLLLOCK鍵

    insert INSERT鍵

    printscreen PRINT SCREEN鍵

    winleft, winright Win鍵(windows )

    command command鍵(Mac OS X )

    option option(Mac OS X)

    快捷鍵

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


    pyautogui 屏幕操作


    獲取屏幕分辨率

    print(pyautogui.size()) # 返回所用顯示器的分辨率;輸出:Size(width=1920, height=1080)

    width,height = pyautogui.size()

    print(width,height) # 1920 1080


    屏幕截圖

    pyautogui 提供了一個(gè)方法screenshot(),可以返回一個(gè)Pillow的image對(duì)象

    im = pyautogui.screenshot() # 返回屏幕的截圖,是一個(gè)Pillow的image對(duì)象

    im.getpixel((500, 500)) # 返回im對(duì)象上,(500,500)這一點(diǎn)像素的顏色,是一個(gè)RGB元組

    pyautogui.pixelMatchesColor(500,500,(12,120,400)) # 是一個(gè)對(duì)比函數(shù),對(duì)比的是屏幕上(500,500)這一點(diǎn)像素的顏色,與所給的元素是否相同;

    im = pyautogui.screenshot() # 返回屏幕的截圖,是一個(gè)Pillow的image對(duì)象

    im.getpixel((500, 500)) # 返回im對(duì)象上,(500,500)這一點(diǎn)像素的顏色,是一個(gè)RGB元組

    pyautogui.pixelMatchesColor(500,500,(12,120,400)) # 是一個(gè)對(duì)比函數(shù),對(duì)比的是屏幕上(500,500)這一點(diǎn)像素的顏色,與所給的元素是否相同;


    pyautogui 網(wǎng)頁(yè)登錄


    pyautogui 網(wǎng)頁(yè)登錄

    https://blog.csdn.net/m0_56238419/article/details/127697645


    pyperclip

    pyperclip簡(jiǎn)介:

    1. 可以復(fù)制剪貼板內(nèi)容

    2. 可以向剪貼板寫(xiě)入內(nèi)容


    Pyperclip教程:

    import pyperclip

    # 將文本復(fù)制到剪貼板

    pyperclip.copy('哈嘍')

    # 從剪貼板粘貼文本

    pyperclip.paste()

    # 剪貼板上有非空字符串時(shí)返回字符串

    import pyperclip

    a = pyperclip.waitForPaste(5)

    print(a)

    # 剪貼板上有文本被更改時(shí)傳返回值

    pyperclip.copy('original text')

    a = pyperclip.waitForNewPaste(5)

    print(a)


    參考資料

    參考資料

    https://www.jb51.net/article/209694.htm

    https://zhuanlan.zhihu.com/p/410967443

    https://www.jb51.net/article/251803.htm

    https://www.cnblogs.com/yuruhao/p/14634401.html

    http://www.yuyanba.com/default.aspx/did92862

    https://blog.csdn.net/pythonuser1/article/details/125986205

    https://blog.csdn.net/weixin_45122104/article/details/125957915

    http://t.zoukankan.com/LM791605490-p-10245807.html

    瀏覽 41
    點(diǎn)贊
    評(píng)論
    收藏
    分享

    手機(jī)掃一掃分享

    分享
    舉報(bào)
    評(píng)論
    圖片
    表情
    推薦
    點(diǎn)贊
    評(píng)論
    收藏
    分享

    手機(jī)掃一掃分享

    分享
    舉報(bào)

    <kbd id="5sdj3"></kbd>
    <th id="5sdj3"></th>

  • <dd id="5sdj3"><form id="5sdj3"></form></dd>
    <td id="5sdj3"><form id="5sdj3"><big id="5sdj3"></big></form></td><del id="5sdj3"></del>

  • <dd id="5sdj3"></dd>
    <dfn id="5sdj3"></dfn>
  • <th id="5sdj3"></th>
    <tfoot id="5sdj3"><menuitem id="5sdj3"></menuitem></tfoot>

  • <td id="5sdj3"><form id="5sdj3"><menu id="5sdj3"></menu></form></td>
  • <kbd id="5sdj3"><form id="5sdj3"></form></kbd>
    日本电影一区二区 | 操操操操操操操操操操操操操逼 | 天堂v视频永久在线播放平台 | 久久久久久麻豆 | AV电影一区 |