3 Pywinauto使用

连接为

http://pywinauto.github.io/

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

start_(path)

connect_(handleor 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的官方文档,其链接是

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

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:菜单的访问

pywinauto java_Pywinauto使用方法(示例代码)相关推荐

  1. 计算机浮点表示法 教案,计算机组成原理——浮点数表示方法(示例代码)

    简介这篇文章主要介绍了计算机组成原理--浮点数表示方法(示例代码)以及相关的经验技巧,文章约568字,浏览量241,点赞数7,值得推荐! 为了表示浮点数,数被分为两部分:整数部分和小数部分.例如,浮点 ...

  2. appsetting mysql_给IConfiguration写一个GetAppSetting扩展方法(示例代码)

    给 IConfiguration 写一个 GetAppSetting 扩展方法 Intro 在 .net core 中,微软已经默认使用 appsettings.json 来代替 app.config ...

  3. 百度 ping php,百度ping方法示例代码 自动ping百度

    百度ping方法使用示例,可以把网站地址自动ping到百度. 使用方法访问时自动ping到百度,这里的方法是生成缓存,更新缓存的时候自动ping百度,返回结果为0表示成功. 例子: 复制代码 代码示例 ...

  4. android语音识别方法示例代码

    1. 说明 以下例程功能为:在应用程序中使用intent来调出语言识别界面,录音并识别后将识别的字串返回给应用程序.注意:使用前需要安装语音识别程序如语音搜索.2. 本例参考自android例程: d ...

  5. css鼠标点在文字上背景透明,CSS实现文字半透明显示在图片上方法(示例代码)

    CSS实现文字半透明显示在图片上方法 在css中文字半透明我们会需要使用滤镜效果也就是css中的filter:alpha来实现了,下面来看两个文字显示在图片上并且半透明的例子. CSS让一行文字显示在 ...

  6. c51语言双精度浮点数,C51浮点数显示、浮点数表示方法(示例代码)

    C51里用4字节存储一个浮点数,格式遵循IEEE-754标准(详见c51.pdf第179页说明).一 个浮点数用两个部分表示,尾数和2的幂,尾数代表浮点上的实际二进制数,2的幂代表指 数,指数的保存形 ...

  7. intel219网卡的linux驱动,ubuntu16.04安装I219-V网卡驱动问题解决方法(示例代码)

    安装ubuntu16.04 LTS后无网络连接的解决方法: 1.查看是否安装网卡驱动 打开终端,输入ifconfig –a,如果出现"本地环回"字样,说明网卡驱动未安装. 2.查看 ...

  8. HTML5DOM红蓝盒子,DOM介绍以及使用方法(示例代码)

    DOM的基本讲解 一.DOM (Document Object Model)文档对象模型 1.有属性有方法 1 var person ={2 name:'派大星',3 fav:function(){4 ...

  9. java生成缩略图例子_具体介绍java生成缩略图的方法示例代码

    这篇文章主要介绍了java生成缩略图的方法,结合具体实例形式分析了java生成缩略图过程中所涉及的各种常见的图形处理技巧,需要的朋友可以参考下 本文实例讲述了java生成缩略图的方法.分享给大家供大家 ...

最新文章

  1. 02---控制移动底座1
  2. 能挣钱的,开源SpringBoot和Vue的企业级项目,代码很规范!
  3. Spring 在 xml配置文件 或 annotation 注解中 运用Spring EL表达式
  4. Educational Codeforces Round 95 (Rated for Div. 2)
  5. 相机标准之onvif---开放型网络视频接口论坛onvif 简介
  6. eclipse package包 java类 有问号 无法读取的问题解决
  7. 以WinGrub 引导安装Fedora 4.0 为例,详述用WinGrub来引导Linux的安装
  8. (转)C++ 库汇总(网址+简介)
  9. 好友伤害_家暴,对一个孩子的伤害到底有多大?
  10. 自动化测试 短信验证登录
  11. jep 使用方法与简介
  12. Hilbert变换及相关特征值
  13. JQueryUI进度条组件学习笔记
  14. Java 验证码图片不加载处理办法
  15. SQL 随机抽取样本
  16. 测量图上点位平面位置\高程中误差怎么计算?
  17. linux中()、[]、{}、(())、[[]]等各种括号的使用
  18. chapter3 转录组学
  19. ArcGIS入门教程(矢量编辑工作流程)
  20. 冒泡排序保姆级心得分享

热门文章

  1. ubuntu18磁盘扩容(vmware或exsi)
  2. Centos之Gerrit邮箱配置-yellowcong
  3. 安卓 自己动手实现守望先锋动画
  4. Android 7.0 分屏拖拽文字和图片的研究
  5. cherry-pick的使用过程
  6. python 简历_我的Python面试简历
  7. Postman高级功能Mock Server
  8. PyQt完整入门教程 | 例程附代码
  9. 打造全新的在线游戏平台系统,融合音乐聚合搜索和影视在线观看
  10. 字节、位、比特的概念和关系