• Pywinauto使用方法


    3 Pywinauto使用

    连接为

    http://pywinauto.github.io/

    3.1 关联到一个应用,用以下方法:

    start_(path)
    connect_(handle or processID)

    以下是示例代码

    app = Application()
    app.start_(“notepad.exe”)
    app.connect_(path = r"c:windowssystem32
    otepad.exe")
    app.connect_(process = 2341)
    app.connect_(handle = 0x010f0c)

    3.2 调用一个窗体

    当初始化app后,可以通过模糊匹配的方式操作该app中的一个窗体,变量名可以是该窗体标题的部分或全部

    dlg = app.window_(title_re = ".*Part of Title.*")
    dlg = app.PartOfTitle

    例如,对一个写字板app应用中的窗口,在英文操作系统中,其标题是“untitled - Notepad”

    可以使用以下两种方式调用该窗体

    app.Untitled
    app.Notepad

    对于关于窗口,其标题是“About Notepad”

    可以使用以下名称调用该窗体

    app.AboutNotepad

    3.3 调用一个控件

    Pywinauto使用以下顺序定位一个控件

    1: 控件的标题,即title

    2:控件的类名,即friendly class

    3:控件的标题加类名,即title + friendly class

    对于“关于”窗口的中按钮,可以使用以下任意一种方式调用

    app.AboutNotepad.OK
    app.AboutNotepad.Button1
    app.AboutNotepad.OKButton

    如果在写字板中输入文字,执行退出时会 弹出询问窗口,对于其中的“不保存按钮”,其英文标题是Don’t Save,按照上面的规律,可以使用以下任意一方式调用该按钮,即

    app.Notepad.DontSave 
    app.Notepad.DoSave
    app.Notepad.DotSave

    以上无论DontSave、DoSave、DotSave都是标题Dont’ Save的一部分,pywinauto都可以通过模糊匹配的方式找到该按钮。

    3.4 控件的基本操作

    如下:

    Control.Click() #点击
    Control.MenuSelect() #菜单选择
    Control.PressMouse/MoveMouse/ReleaseMouse() #按、移动、释放鼠标
    Control.TypeKeys() #键入字符

    其中TypeKeys()支持组合键,例如

    Ctrl: ^

    Alt: %

    Shift: +

    以下是其常见属性的读取:

    ControlID()
    FriendlyClassName()
    WindowText()
    Rectangle()
    IsEnabled()
    IsVisible()

    如果想了解详细,可以查看pywinauto的官方文档,其链接是

    http://pywinauto.googlecode.com/hg/pywinauto/docs/controls_overview.html

    在该网页里,最上方是所有控件的基本操作和属性读取,下面依次是每个控件独有的操作,在实际的编程中,如果想知道某个控件的某个操作,可以通过文档查询。

    4 其它说明

    4.1 和PyUnit集成

    只要代码书写符合PyUnit的要求,可以很容易的让pywinauto所测试的win32应用和PyUnit集成。

    4.2 和Selenium集成

    Selenium支持Python语言,因此,很容易让pywinauto与selenium。

    在一些测试场景中,需要运行完某个win32应用后,立刻在web应用程序中查看结果,也就是说,一个测试同时要面对win32和web两种应用,可以用python+pywinauto+selenium组合的方式实现。

    4.3 代码结构

    有兴趣的网友,还可以阅读其源代码,主要的几个程序是

    Application.py:与app相关   
    Findwindows.py:窗体的查找
    Timings.py:各种操作的时间间隔设置
    win32_controls.py:普通控件的访问
    common_controls.py:TreeView/ListView...等控件的访问
    Menuwrapper.py:菜单的访问
     
  • 相关阅读:
    ubuntu ip
    [转]caffe+Ubuntu14.0.4 64bit 环境配置说明(无CUDA,caffe在CPU下运行) --for --Amd
    kali install fcitx
    [转译][马基 杰斯特(MarkeyJester) 摩托罗拉68000 入门教程] 叁
    [转译][马基 杰斯特(MarkeyJester) 摩托罗拉68000 入门教程] 叁
    [转译][马基 杰斯特(MarkeyJester) 摩托罗拉68000 入门教程] 叁
    [转译][马基 杰斯特(MarkeyJester) 摩托罗拉68000 入门教程] 叁
    [转译][马基 杰斯特(MarkeyJester) 摩托罗拉68000 入门教程] 贰
    [转译][马基 杰斯特(MarkeyJester) 摩托罗拉68000 入门教程] 贰
    [转译][马基 杰斯特(MarkeyJester) 摩托罗拉68000 入门教程] 贰
  • 原文地址:https://www.cnblogs.com/programer-xinmu78/p/10661257.html
Copyright © 2020-2023  润新知