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>

        使用 Python 進(jìn)行 Windows GUI 自動(dòng)化

        共 3992字,需瀏覽 8分鐘

         ·

        2023-06-25 20:30

        Python客棧設(shè)為“星標(biāo)?
        第一時(shí)間收到最新資訊

        在今天的文章中,我們將探討如何使用 Python 進(jìn)行 Windows GUI 自動(dòng)化。GUI 自動(dòng)化可以幫助我們自動(dòng)執(zhí)行許多與操作系統(tǒng)交互的任務(wù),比如移動(dòng)鼠標(biāo)、點(diǎn)擊按鈕、輸入文本、移動(dòng)窗口等。Python 提供了兩個(gè)強(qiáng)大的庫(kù):pyautogui 和 pywinauto,使得 GUI 自動(dòng)化變得簡(jiǎn)單。接下來(lái)我們?cè)敿?xì)介紹。

        pyautogui

        pyautogui 是一個(gè)純 Python 的 GUI 自動(dòng)化庫(kù),它可以模擬鍵盤(pán)輸入、鼠標(biāo)點(diǎn)擊和移動(dòng)、在屏幕上查找圖像等操作。它對(duì) Windows、macOS、和 Linux 都有良好的支持,可以幫助我們編寫(xiě)跨平臺(tái)的自動(dòng)化腳本。

        pyautogui 的使用場(chǎng)景

        pyautogui 的使用場(chǎng)景非常廣泛。以下是一些常見(jiàn)的例子:

        1. ** 測(cè)試 **:自動(dòng)化腳本可以幫助我們自動(dòng)執(zhí)行一些復(fù)雜的測(cè)試用例,比如 UI 測(cè)試、功能測(cè)試等。
        2. ** 數(shù)據(jù)錄入 **:如果我們需要在多個(gè)表單或應(yīng)用程序中輸入相同的數(shù)據(jù),自動(dòng)化腳本可以幫助我們節(jié)省大量的時(shí)間和精力。
        3. ** 批量操作 **:如果我們需要對(duì)大量的文件或數(shù)據(jù)進(jìn)行相同的操作,自動(dòng)化腳本也可以派上用場(chǎng)。

        如何安裝 pyautogui

        在開(kāi)始使用 pyautogui 之前,我們需要先在我們的 Python 環(huán)境中安裝它。在命令行中輸入以下命令即可:

        pip install pyautogui

        pyautogui 打開(kāi)記事本,輸入文本保存

        接下來(lái),我們通過(guò)一個(gè)簡(jiǎn)單的例子來(lái)展示如何使用 pyautogui。在這個(gè)例子中,我們將使用 pyautogui 來(lái)自動(dòng)打開(kāi)一個(gè)記事本,輸入一些文字,然后保存并關(guān)閉它。

        首先,我們導(dǎo)入 pyautogui 庫(kù),并設(shè)置失敗安全特性,當(dāng)我們將鼠標(biāo)移動(dòng)到屏幕的左上角時(shí),自動(dòng)化會(huì)立即停止:

        import pyautogui

        pyautogui.FAILSAFE = True

        然后,我們使用 pyautoguihotkey 函數(shù)來(lái)模擬按下 Win+R 組合鍵,打開(kāi)運(yùn)行對(duì)話框:

        pyautogui.hotkey('win''r')

        接著,我們使用 typewrite 函數(shù)來(lái)輸入 "notepad",并按下回車(chē)鍵:

        pyautogui.typewrite('notepad', interval=0.25)
        pyautogui.press('enter')

        然后,我們等待一下,讓記事本完全打開(kāi),然后再輸入一些文字:

        import time

        time.sleep(2)  # wait for Notepad to open
        pyautogui.typewrite('Hello, world!', interval=0.25)

        typewrite 函數(shù)可以模擬鍵盤(pán)輸入,interval 參數(shù)可以設(shè)置每個(gè)字符之間的間隔,以模擬人類(lèi)的打字速度。

        接下來(lái),我們用 hotkey 函數(shù)來(lái)模擬按下 Ctrl+S 組合鍵,保存這個(gè)文件:

        pyautogui.hotkey('ctrl''s')  # press the Save hotkey combination
        time.sleep(1)  # wait for the Save dialog to appear

        然后我們輸入文件名,并按下回車(chē)鍵保存文件:

        pyautogui.typewrite('hello_world.txt', interval=0.25)
        pyautogui.press('enter')  # press the Enter key

        最后,我們用 hotkey 函數(shù)來(lái)模擬按下 Alt+F4 組合鍵,關(guān)閉記事本:

        pyautogui.hotkey('alt''f4')  # close Notepad

        以上就是用 pyautogui 編寫(xiě)的一個(gè)簡(jiǎn)單的自動(dòng)化腳本。通過(guò)這個(gè)腳本,我們可以看到,pyautogui 提供了一套非常直觀和易用的接口,讓我們可以輕松地編寫(xiě)出復(fù)雜的自動(dòng)化腳本。

        pywinauto

        pywinauto 的主要用途是自動(dòng)化 Windows GUI 應(yīng)用程序的測(cè)試和自動(dòng)化。

        pywinauto 的使用場(chǎng)景

        • 回歸測(cè)試:定期運(yùn)行相同的測(cè)試,確保軟件在進(jìn)行更改或更新后仍然可以正常工作。
        • 質(zhì)量保證:確保軟件的新版本或功能與預(yù)期的用戶體驗(yàn)一致。
        • 持續(xù)集成 / 持續(xù)部署 (CI/CD) 流程:在自動(dòng)化的構(gòu)建和部署過(guò)程中,進(jìn)行軟件測(cè)試。
        • 任務(wù)自動(dòng)化:自動(dòng)執(zhí)行一些重復(fù)性的 GUI 操作,如文件管理,軟件安裝等。

        用 pywinauto 來(lái)自動(dòng)化 Windows 計(jì)算器

        下面是一個(gè)簡(jiǎn)單的 pywinauto 教程,我們將演示如何用 pywinauto 來(lái)自動(dòng)化 Windows 計(jì)算器的操作。

        首先,你需要確保你的環(huán)境已經(jīng)安裝了 Python 和 pywinauto。你可以使用 pip 來(lái)安裝 pywinauto:

        pip install pywinauto

        然后,我們可以編寫(xiě)一個(gè)簡(jiǎn)單的腳本來(lái)啟動(dòng)計(jì)算器應(yīng)用并執(zhí)行一些操作:

        from pywinauto.application import Application

        # 啟動(dòng) Windows 計(jì)算器
        app = Application().start("calc.exe")

        # 選擇計(jì)算器窗口
        dlg = app.window(title=' 計(jì)算器 ')

        # 在計(jì)算器中輸入 2+2
        dlg.type_keys('2+2=')

        # 打印結(jié)果
        print(" 結(jié)果是:", dlg.Static2.window_text())

        這段代碼首先啟動(dòng)了 Windows 計(jì)算器,然后在計(jì)算器中執(zhí)行了 2+2 的操作,并打印出結(jié)果。

        ** 請(qǐng)注意:這個(gè)示例假設(shè)你的計(jì)算器應(yīng)用具有類(lèi)似于 Windows 10 計(jì)算器的布局。不同的 Windows 版本可能需要適當(dāng)調(diào)整代碼。**

        用 pywinauto 來(lái)自動(dòng)化 Windows 記事本

        導(dǎo)入模塊

        在 Python 腳本中,我們需要導(dǎo)入 pywinauto 庫(kù)。同時(shí),我們還會(huì)導(dǎo)入 time 庫(kù),因?yàn)樵趫?zhí)行某些操作時(shí),我們可能需要暫停一下。

        from pywinauto.application import Application
        import time

        啟動(dòng)應(yīng)用程序

        使用 pywinauto 的 Application 對(duì)象,我們可以啟動(dòng)和控制應(yīng)用程序。例如,如果我們要打開(kāi)記事本,我們可以這樣做:

        app = Application().start("notepad.exe")

        操作窗口

        在打開(kāi)應(yīng)用程序后,我們通常需要與其窗口進(jìn)行交互。我們可以使用 app 對(duì)象的 window_ 方法來(lái)獲取窗口。然后,我們可以調(diào)用窗口的方法來(lái)執(zhí)行各種操作,如點(diǎn)擊按鈕或輸入文本。

        例如,我們可以在記事本中輸入一些文本:

        app.Notepad.Edit.type_keys("Hello, World!", with_spaces = True)

        type_keys 方法會(huì)模擬鍵盤(pán)按鍵。with_spaces = True 參數(shù)表示我們希望在每次按鍵之間添加短暫的延遲,以模擬人類(lèi)的打字速度。

        保存和關(guān)閉

        最后,我們可以模擬點(diǎn)擊菜單選項(xiàng)來(lái)保存我們的文件,然后關(guān)閉記事本:

        app.Notepad.menu_select("File -> Save As")
        app.SaveAs.Edit.set_edit_text("example.txt")
        app.SaveAs.Save.click()
        time.sleep(1)
        app.Notepad.menu_select("File -> Exit")

        在這個(gè)例子中,menu_select 方法用于模擬點(diǎn)擊菜單選項(xiàng),set_edit_text 方法用于在文本框中輸入文本,click 方法用于點(diǎn)擊按鈕。

        ** 請(qǐng)注意:這個(gè)示例假設(shè)你的記事本的菜單是英文,如果是中文,則需要調(diào)整代碼為中文。**

        以上就是一個(gè)基本的例子,展示了如何使用 Python 和 pywinauto 進(jìn)行 Windows GUI 自動(dòng)化。當(dāng)然,pywinauto 還有更多的功能等待您去探索,包括處理復(fù)雜的窗口結(jié)構(gòu)、模擬鼠標(biāo)操作等。

        最后的話

        pywinauto 和 pyautogui 都是強(qiáng)大的 GUI 自動(dòng)化工具,可以幫助你自動(dòng)化 Windows 應(yīng)用程序的許多任務(wù),你可以選擇合適的工具進(jìn)行自動(dòng)化。希望這篇文章和教程能幫你提高工作效率。



        往期推薦

        1、8個(gè)很少用,但卻很好用的 Python 庫(kù),一起來(lái)看看吧

        2、“讓Python快5倍”最新計(jì)劃:優(yōu)化解釋器和內(nèi)存管理

        3、90行Python代碼讓微信地球轉(zhuǎn)起來(lái)!

        4、如何快速優(yōu)化Python導(dǎo)包順序

        5、10行Python代碼能做出哪些有趣的事情?



        點(diǎn)擊關(guān)注公眾號(hào),閱讀更多精彩內(nèi)容

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

        手機(jī)掃一掃分享

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

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        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>
            欧美极品jiizzhd欧美24 | 岳乳丰满一区二区三区 | 国产又粗又大又长又深又刺激 | 久久无码爱爱 | 国产91对白叫床清晰播放 | 侵犯五十路电车痴汉在线 | 深夜福利小视频 | 男生桶女生jj | 2024黄色网址 | 国产一区二区在线播放 |