吾八哥学Pywinauto(一):安装Pywinauto写出第一个Pywinauto脚本
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):
Install pyWin32 extensions (no need for ActivePython)
Download six and install by
python setup.py install
Download comtypes and install by
python setup.py install
Download the latest pywinauto and run
python setup.py install
or install on Linux:
Run
python setup.py install
for every dependency and for pywinauto package
推荐初学者使用pip install的方式哈!不为什么,因为简单!我在Windows下安装过程如下图所示:
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("帮助->关于记事本")
运行效果如下:
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+)