使用pywinauto测试winform程序

python中GUI的测试方面pywinauto库是一个不错的选择。


pywinauto最新的版本是0.4.2,需要在官网下载https://pywinauto.googlecode.com/files/pywinauto-0.4.2.zip(需要翻墙才可以,有时翻墙也下载不了,基于这个我百度云分享出来,可以供需要的同学下载,下面是我的百度云共享地址:http://pan.baidu.com/s/1dDhfo4p)


我的环境是win7-64位操作系统,python2.7.9-32位安装包。


pip install pywinauto 安装的版本不是最新的版本,这个跟pip的源有关系,所以还是得自己下载最新版本的包,然后python setup.py install 这样来安装!


百度或者google上搜索pywinauto有很多文章和教程来描述pywinauto的使用,不过得注意上面我的描述,得注意版本号!!!


我自己使用pywinauto这个是为了使用一个windows的程序来实现自动化的操作,这个不太合适在这里讲,因为不太通用,可能看此文的人很多都没我这个软件。

所以还是以记事本为例子在这里简单讲下这个使用流程:

1)运行一个程序实例

app = application.Application()
app.start_("notepad.exe")

start_()           --------函数是开始一个进程

connect_()    --------函数是连接一个已经打开的进程

这个具体可以看源码。


win = app.window_()   ------------是找窗口

参数的话主要是title/title_re/class_name/class_name_re/

带_re的是可以正则匹配。


参数:

class_name = None,
                class_name_re = None,
                parent = None,
                process = None,
                title = None,
                title_re = None,
                top_level_only = True,
                visible_only = True,
                enabled_only = False,
                best_match = None,
                handle = None,
                ctrl_index = None,
                predicate_func = None,
                active_only = False,
                control_id = None,


2)如何发送按键信息

 Pywinauto使用SendKeys来进行按键处理,可以参考:

            http://www.rutherfurd.net/python/sendkeys/

1.      发送快捷键

  MainWin.TypeKeys("%F") #按Alt+F

Key

Meaning

+

SHIFT

^

CTRL

%

ALT

多个按键时可以使用间隔时间:

MainWin.TypeKeys("%IPS",pause=0.5) #在Word2003打开从扫描仪导入图片的窗口

 

注意,TypeKeys并不是安全地将按键发送到目标窗口,所以尽量减少使用或者

测试时减小其它操作干扰。

 

2. 使用SendMessage实现

(参考:http://blog.csdn.net/horkychen/article/details/6324530)


3)如何控制Mouse

示例:

def AdjustSizeOnPreview(WizardDlg,ShiftX,ShiftY):

            Offset = 10

            OrgRect = WizardDlg.WiaPreviewControl1.Rectangle()

            WizardDlg.WiaPreviewControl1.PressMouse(coords = (Offset,Offset))

            WizardDlg.WiaPreviewControl1.MoveMouse(coords = (Offset+ShiftX,Offset+ShiftY))

            WizardDlg.WiaPreviewControl1.ReleaseMouse()



------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

2015-06-24新增

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值