吾八哥学Pywinauto(四):使用Pywinauto操作按钮、编辑框对象

前言

今天吾八哥我接着来学习Pywinauto的用法,今天主要学习的内容是使用Pywinauto操作按钮、编辑框,今天选取的程序是Navicat for MySQL,Mysql数据库的可视化管理软件,也算是一款非常大众的软件了,该文章结尾会提供该软件的下载,下载地址为:

分析方法

spy++里找Windows窗口对象的方法是要根据类名或者标题,Pywinauto里的原理其实是类似的,官方文档里也告诉我们如何定位一个控件的方法:

app.dlg.control
app['dlg']['control']

那么标题名和类名我们如何找到呢?首先肯定是要借助于spy++来找到主窗口类名,然后通过print_control_identifiers()方法打印出所有的控件信息,具体代码如下:

import pywinauto

app = pywinauto.Application()
app = app.connect(title_re="Navicat for MySQL", class_name="TNavicatMainForm")
dlg = app.TNavicatMainForm
dlg.print_control_identifiers()

主窗口里的控件内容有点多,运行后输出的内容有点长,这里不就贴出来了。

实例操作

我们来做一个具体的操作动作来学习下具体如何操作按钮和编辑框控件,我们选取的场景为“新建连接”对话框,,输入相关的信息来新建一个数据库连接,这里就先提前打开“新建连接”对话框了,如下图:

TIM图片20180303163845.png

具体的操作代码如下:

# Autor: 5bug
# WebSite: http://www.XuePython.wang
# 学Python网QQ群: 643829693
import pywinauto

app = pywinauto.Application()
app = app.connect(title_re="Navicat for MySQL", class_name="TNavicatMainForm")
#连接对话框
dlg = app.TConnectionForm
#输入连接名
dlg.Edit5.type_keys("吾八哥博客", with_spaces = True)
#输入主机名或IP地址
dlg.Edit1.type_keys("127.0.0.1", with_spaces = True)
#输入端口
dlg.Edit4.type_keys("3306", with_spaces = True)
#输入用户名
dlg.Edit3.type_keys("root", with_spaces = True)
#输入密码
dlg.Edit2.type_keys("123456", with_spaces = True)
#单击连接测试按钮
# dlg['连接测试'].click()
#单击确定
dlg['确定'].click()

代码还是比较简单的,代码执行后会添加一个“吾八哥博客”的新连接。这里的关键点是如何找到对应的元素控件,吾八哥我的方法就是根据print_control_identifiers()方法打印出的控件信息进行分析的,比如编辑框非常多,实际上比较难区分哪一个Edit是做什么使用的,刚好这个打印出来的信息里面提供了坐标信息,我们分析的时候可以参考的。另外就是写文本进去操作尝试一下然后进行排除也可以的。

本文首发学Python网:http://www.xuepython.wang


分享:

扫一扫在手机阅读、分享本文