1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        #pyautogui & pyperclip# 基于pyautogui & pyperclip的UI 自動

        共 4754字,需瀏覽 10分鐘

         ·

        2023-01-12 12:30

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

        pyautogui

        PyAutoGUI簡介:

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


        pyautogui官網(wǎng):

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



        pyautogui組件:

        鼠標(biāo)、鍵盤、對話框、屏幕



        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)系移動鼠標(biāo)

        auto.moveTo(100,150)

        #點擊鼠標(biāo)

        auto.click()

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

        auto.click(100,150)

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

        auto.click('button.png')

        #根據(jù)像素移動

        auto.move(400,0)

        #雙擊鼠標(biāo)

        auto.doubleClick()

        #點擊ESC鍵

        auto.press('esc')

        #按下shift鍵的同時,連按左鍵四下

        with auto.hold('shift'):

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

        #按下快捷鍵

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

        #彈出窗口

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

        #模擬鍵盤輸入

        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 前置操作


        自動防故障功能

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

        pyautogui.FAILSAFE =False


        停頓功能

        # 意味著所有pyautogui的指令都要暫停一秒;其他指令不會停頓;這樣做,可以防止鍵盤鼠標(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


        移動到指定位置

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

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

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


        獲取鼠標(biāo)位置

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


        鼠標(biāo)單擊

        # 點擊鼠標(biāo)

        pyautogui.click(10,10) # 鼠標(biāo)點擊指定位置,默認(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)點擊與釋放

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

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


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

        # 拖動到指定位置

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

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

        # 按方向拖動

        # 向右拖動100px,向下拖動500px, 這個過程持續(xù) 1 秒鐘

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


        鼠標(biāo)滾輪

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

        pyautogui.scroll(300) # 向下滾動300個單位;


        pyautogui 鍵盤操作


        鍵盤輸入函數(shù)

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

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

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

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

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


        鍵盤事件

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

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

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


        緩慢輸出

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

        鍵盤特殊順序輸出

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


        特殊按鍵說明

        鍵盤字符串   說明

        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 聲音變大變小靜音(有些鍵盤沒有)

        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 提供了一個方法screenshot(),可以返回一個Pillow的image對象

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

        im.getpixel((500, 500)) # 返回im對象上,(500,500)這一點像素的顏色,是一個RGB元組

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

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

        im.getpixel((500, 500)) # 返回im對象上,(500,500)這一點像素的顏色,是一個RGB元組

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


        pyautogui 網(wǎng)頁登錄


        pyautogui 網(wǎng)頁登錄

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


        pyperclip

        pyperclip簡介:

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

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


        Pyperclip教程:

        import pyperclip

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

        pyperclip.copy('哈嘍')

        # 從剪貼板粘貼文本

        pyperclip.paste()

        # 剪貼板上有非空字符串時返回字符串

        import pyperclip

        a = pyperclip.waitForPaste(5)

        print(a)

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

        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
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            淫色五月 | 男生j插女生p | 国产精品中文字幕在线观看 | 国产女人18毛片水真多水真多 | 一区无二区无码在线观看 | 日本无码成人 | 亚洲91视频| www久热 | 人善交videohd另类hd | 女同啪啪免费网站www |