它可以允许你很容易的发送鼠标、键盘动作给Windows的对话框和控件。
其中,最主要功能为对windows标准控件的一系列动作可编程处理。
包括对窗口的指定、鼠标或键盘 *** 作、获得控件属性等等。
程序的开始为对所需应用的启 动或连接。
获得程序连接后,pywinauto通过窗口的名称、类名、是否可见等属性寻找匹配的窗口,进而通过类似方法寻找用户所需的控件,并获得相应的 句柄。
之后,用户可通过易理解的编程方式对指定控件进行相关 *** 作的编程,包括鼠标点击、键盘输入、判断控件间关系、获取控件属性等。
Python for windows 模块,使得windows api函数有了相应的python接口,其中的ctypes和win32api模块为api函数的对应应用封装了较为完善的接口集合。
内结构:
程序的入口及对指定窗口或控件的 *** 作,定义在application.py中。
其中Application类进行对应用的开启和连接,WindowSpecification类自动映射到指定的窗口或控件上。
HwndWrapper?.py,win32_controls.py,menuwrapper.py,common_controls.py中为 Pywinauto对标准控件 *** 作的定义。
控件都由HwndWrapper类继承而来,其中对控件共有的基本属性进行了定义。
在控件自己的定义中,对 HwndWrapper类的一些属性进行了重载,同时也定义了具有自己特色的属性和 *** 作。
对控件属性值的获取和 *** 作定义在 handleprops.py,controlsproperties.py文件中。
Win32defines.py,win32functions.py,win32structures.py文件中,为pywinauto对底层函数 *** 作的定义和索引。
其底层调用的是python的ctypes库函数所提供的接口。
Ctypes库中封装了系统所使用的C语言数据类型和windows api函数 *** 作等模块,并提供了相应的python语言接口,使用户通过python可对系统进行 *** 作。
case组织:
我们采用Python的unittest模块的基本结构,来组织自动化case。
每一个大的功能模块,为一个类,继承与 unittest.TestCase。
通过在测试类中添加函数的形式,对测试类中的每一个测试点(即case)进行代码编写。
测试类中,一定要覆盖的是 setUp()和tearDown()函数,作为每一个单元测试函数的入口和出口。
Unittest提供TestSuite类来集合和组织测试类中的多个 测试函数。
同时,提供了TextTestRunner类来运行TestSuite里的类,并返回通过、错误、失败的测试数量以及运行时间。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)