吾八哥博客

您现在的位置是:首页 > DevOps > 自动化 > 正文

自动化

吾八哥学Pywinauto(一):安装Pywinauto写出第一个Pywinauto脚本

吾八哥2018-02-04自动化5275

Pywinauto简介

虽然目前已经不是PC的时代,但还是有很多PC端的Windows GUI窗口的程序需要测试,那么在Python里就有一个适用于Windows GUI窗口的自动化测试库---Pywinauto。Pywinauto是基于Python开发的,用于自动化测试的脚本模块,主要操作于Windows标准图形界面。它可以允许你很容易的发送鼠标、键盘动作给Windows的对话框和控件。其中,最主要功能为对windows标准控件的一系列动作可编程处理。包括对窗口的指定、鼠标或键盘操作、获得控件属性等等。程序的开始为对所需应用的启 动或连接。获得程序连接后,pywinauto通过窗口的名称、类名、是否可见等属性寻找匹配的窗口,进而通过类似方法寻找用户所需的控件,并获得相应的 句柄。之后,用户可通过易理解的编程方式对指定控件进行相关操作的编程,包括鼠标点击、键盘输入、判断控件间关系、获取控件属性等。

Pywinauto安装

Pywinauto的官方地址为:http://pywinauto.github.io/

开源github地址:https://github.com/pywinauto/pywinauto

根据官网说明,Python里安装Pywinauto的方法有如下几种:

  • Just run pip install --upgrade pywinauto (Py2.7+, Py3.3+)

or follow manual steps (if pip installation is not available due to your network restrictions):

or install on Linux:

  • six

  • python-xlib

  • Run python setup.py install for every dependency and for pywinauto package

推荐初学者使用pip install的方式哈!不为什么,因为简单!我在Windows下安装过程如下图所示:

TIM图片20180204204659.png

Pywinauto第一个脚本

既然是Windows GUI窗口,那么我们就拿记事本程序来测试吧,官方的例子也是记事本,只是是英文版的系统。我们来写个简单的脚本,用于打开记事本程序,然后写入“Hello,Pywinauto!学Python就上学Python网Http://www.XuePython.wang”

Python代码如下:

from pywinauto.application import Application
#启动记事本应用程序
app = Application().start("notepad.exe")
#往记事本内写入文本
app.UntitledNotepad.Edit.type_keys("Hello,Pywinauto!学Python就上学Python网Http://www.XuePython.wang", with_spaces = True)
#打开菜单,选择帮助->关于记事本
app.UntitledNotepad.menu_select("帮助->关于记事本")

运行效果如下:

TIM图片20180204210241.png

Pywinauto支持的组件

  • Standard Win32 controls (through Win32 API): MFC, WTL, VB6 and some other legacy apps, partial support for WinForms

  • All standard widgets under MS UI Automation: WinForms, WPF, Qt, all browsers, explorer.exe and more (pywinauto 0.6.0+)