python 操作 windows 控件_在中文windows下使用pywinauto进行窗口操作(一)

本文介绍了如何使用pywinauto模块在中文Windows环境下进行窗口操作,包括启动程序、选择菜单项、查找窗口和点击按钮。通过实例演示了在notepad中进行操作,强调了中文菜单的支持和非英文操作系统下的编码处理。
摘要由CSDN通过智能技术生成

这两天开始接触pywinauto,听说百度的自动化QA也用这个模块,于是来了兴趣,但网上的教程很少,而且基本上都是拿官方的notepad来说,首先中文菜单的支持是问题,其次各种操作也没有写清楚,阅读官方的文档,发现这个东西使用起来还真是非常方便,下面我也以notepad为例来说明一下它的简单操作。

安装

3.ctypes (如果你是python2.3或者2.4)

检测你是否安装正确

>>> from pywinauto import application

>>> app = application.Application.start("notepad.exe")

>>> app.notepad.TypeKeys("%FX")

都安装好了以后,我们来正式进入pywinauto的世界

一、启动程序

from pywinauto import application

app = application.Application.start('notepad.exe')

start() 函数里也可以接路径+程序名

使用spy++lite查看notepad的信息

里面的窗口类名与标题文本相关重要,以后的查找窗口基本上都要用的到

现在我们来点击“帮助->关于记事本”操作

app.Notepad.MenuSelect('帮助->关于记事本'.decode('gb2312'))

这里的app是你刚才实例的对象,Notepad是类名,可以从spy++lite中看到,MenuSelect方法可以自动检索Notepad上的菜单选项,

decode(‘gb2312’)方法是把中文强制转换为unicode编码,对于非英文的操作系统都是要转换的,后面还有更简单的方法

二、查找“关于记事本”的窗口

还是使用spy++lite来查看“关于记事本”的信息

窗口类名:#32770

标题文字:关于“记事本”

官方法文档中有以下两个方法

1. 通过top_dlg = app.top_window_() 来获得最上面的window,但是官方并不推荐这种方式,目前来说这个“关于记事本”是最上面,但是也不能保证在测试的进程当中有什么意外的进程跑到了上面,一旦有新的进程,那么得到的就是一个错误的对象

2.通过find_dlg = app.window_(title_re = ‘’, class_name = ‘’) 方法获得,这也是为什么我上面说标题文本与窗口类名非常重要的原因,title_re和 class_name这两个可以单独使用也可以一块使用,因为有时没有标题文本,也有时一个窗口类名有多个对象,比如“Edit”有时当一个对话框中有多个输入框时会有多个Edit类名,

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值