美文网首页python
python之pywinauto库文档整理翻译(1)

python之pywinauto库文档整理翻译(1)

作者: 糯8 | 来源:发表于2020-01-19 15:38 被阅读0次

    什么是pywinauto 

    它是什么?

    pywinauto是一组用于自动化Microsoft Windows GUI的python模块。最简单的是,它允许您将鼠标和键盘操作发送到Windows对话框和控件。

    安装

    pip install pywinauto

    手动安装

    安装以下Python软件包

    pyWin32

    comtypes

    six

    (可选)  Pillow(进行屏幕截图)

    从https://github.com/pywinauto/pywinauto/releases下载最新的pywinauto

    打开包装并运行 python setup.py install

    要检查您是否正确安装了它,请运行Python

    >>> from pywinauto.application import Application

    >>> app = Application(backend="uia").start("notepad.exe")

    >>> app.UntitledNotepad.type_keys("%FX")


    它是如何工作

    入门指南中介绍了核心概念。

    通过__getattribute__每个类的属性访问()完成许多工作。例如,当您获得Application或Dialog对象的属性时,它将分别查找对话框或控件。

    myapp.Notepad #查找标题为“类似于”的应用程序的窗口/对话框

    myapp.PageSetup.OK #首先查找标题为“ PageSetup”的对话框,然后在该对话框中查找标题为 “ OK” 的控件。


    此属性解析将延迟(具有默认超时),直到成功为止。因此,例如,如果您选择菜单选项,然后查找结果对话框,例如

    app.UntitledNotepad.menu_select("File->SaveAs")

    app.SaveAs.ComboBox5.select("UTF-8")

    app.SaveAs.edit1.set_text("Example-utf8.txt")

    app.SaveAs.Save.click()

    在第二行,执行该行时可能无法打开“另存为”对话框。因此,发生的事情是,我们等待直到有一个要解决的控件再解决该对话框。在这一点上,如果我们找不到带有ComboBox5控件的SaveAs对话框,则我们将等待很短的时间,然后重试,该操作将重复到最大时间(默认为5秒!)。

    这是为了避免必须显式使用time.sleep或“ wait”函数。

    如果您的应用程序执行长时间的操作,新对话框可能会出现或稍后消失。您可以像这样等待其新状态

    app.Open.Open.click() #打开大文件

    app.Open.wait_not('visible') #确保“打开”对话框不可见

    app.window(title='data.txt - Notepad').wait('ready', timeout=30)#等待30秒钟,直到data.txt被加载


    一些类似的比较工具

    Python工具

    PyAutoGui-流行的跨平台库(具有基于图像的搜索,没有基于文本的控件操作)。

    Lackey -Sikuli的纯Python替代品(基于图像模式匹配)。

    AXUI -MS UI Automation API的包装器之一。

    winGuiAuto-使用Win32 API的另一个模块。

    其他脚本语言工具

    (Perl)Win32 :: GuiTest

    (Ruby)Win32-Autogui -Win32 API的包装。

    (Ruby)RAutomation-有3个适配器:Win32 API,UIA,AutoIt。

    其他免费工具

    (C#)Winium.Desktop-一个年轻但不错的基于MS UI自动化的工具。

    (C#)TestStack.White-另一个基于MS UI Automation的优秀库,历史悠久。

    不含AutoIt的工具,具有自己的类似于Basic的语言(基于Win32 API,没有.NET计划)

    AutoHotKey-具有自己的脚本语言(.ahk)的本地C ++工具

    GitHub上的“很棒的测试自动化”列表

    大量用于功能测试的开源工具

    商业工具

    WinRunner(http://www.mercury.com/us/products/quality-center/functional-testing/winrunner/)

    SilkTest(http://www.segue.com/products/functional-regressional-testing/silktest.asp)

    其他许多(http://www.testingfaqs.org/t-gui.html)

    相关文章

      网友评论

        本文标题:python之pywinauto库文档整理翻译(1)

        本文链接:https://www.haomeiwen.com/subject/kvvrzctx.html