Windows GUI程序自动化之pywinauto

一. pywinauto知识点总结

官方英文版文档网址:https://pywinauto.readthedocs.io/en/latest/index.html

1.1 pywinauto的安装与配置

<1>相关库文件的下载地址

 pywinauto最新版本下载地址: https://github.com/pywinauto/pywinauto/releases

 pywin32下载地址:https://sourceforge.net/projects/pywin32/files/pywin32/Build%20220/

 comtypes下载地址:https://github.com/enthought/comtypes/releases

 six下载地址:https://pypi.org/project/six/ 

 Pillow下载地址:https://pypi.org/project/Pillow/2.7.0/

<2>安装相关库

法1.直接通过命令行安装

 (安装pywin32,直接安装比在官网下载速度慢,但是如果大家python3和python2同时安装了,那么直接下载再安装,会报错:找不到符合要求的python版本)

 安装pywin32,E:\soft\python3.6\Scripts>pip3 install pywin32

法2.通过setup.py文件安装(安装包放中文路径下,可能安装出错)

 如安装comtypes, (如果是unpack的下载包,)安装方法,进入下载的安装包路径,用命令行python3 setup.py install安装

1.2 pywinauto的基本操作

<1>一个小练习快速上手 pywinauto基本操作

#_*_coding=utf-8_*_
import pywinauto
from pywinauto.mouse import *
from pywinauto.keyboard import *
import time
#1.运行记事本程序
app = pywinauto.Application().start('notepad.exe')
#2.窗体选择
title_notepad = u'无标题-记事本'
#3.选择一个菜单项
app[title_notepad].menu_select('帮助->关于记事本')
time.sleep(3)
#4.点击新弹出窗体的确定按钮
out_note=u'关于记事本'
button_name_ok='确定'
app[out_note][button_name_ok].click()
#5.查看一个窗体含有的控件,子窗体,菜单
print(app[title_notepad].print_control_identifiers())
#-------------------无标题记事本的含有的控件,子窗体,菜单-----------------
# Control Identifiers:
#
# Notepad - '无标题 - 记事本'    (L8, T439, R892, B815)
# ['无标题 - 记事本Notepad', 'Notepad', '无标题 - 记事本']
# child_window(title="无标题 - 记事本", class_name="Notepad")
#    |
#    | Edit - ''    (L16, T490, R884, B807)
#    | ['无标题 - 记事本Edit', 'Edit']
#    | child_window(class_name="Edit")
#    |
#    | StatusBar - ''    (L16, T785, R884, B807)
#    | ['StatusBar', '无标题 - 记事本StatusBar', 'StatusBar   第 1 行,第 1 列']
#    | child_window(class_name="msctls_statusbar32")
# None

#6.在记事本中输入一些文本
#[tips-> ctrl+点击鼠标左键快速查看被调用函数]
app.title_notepad.Edit.type_keys('pywinauto works!\n',with_spaces=True,with_newlines=True)
app.title_notepad.Edit.type_keys('hello word !\n',with_spaces=True,with_newlines=True)
#7.选择编辑菜单->编辑时间/日期
# app[title_notepad].menu_select('编辑->时间/日期(&d)')
#8.连接已运行程序
#如连接微信 借助spy++找到运行程序的handle
app1=pywinauto.Application(backend='uia').connect(handle=0x00320830)
#9.查看运行窗口窗体名称
print(app1.window())
print(app1['Dialog'].print_control_identifiers())
# Dialog - '微信'    (L968, T269, R1678, B903)
# ['微信Dialog', 'Dialog', '微信']
# child_window(title="微信", control_type="Window")
#    |
#    | Pane - 'ChatContactMenu'    (L-10000, T-10000, R-9999, B-9999)
#    | ['ChatContactMenu', 'ChatContactMenuPane', 'Pane', 'Pane0', 'Pane1']
#    | child_window(title="ChatContactMenu", control_type="Pane")
#    |    |
#    |    | Pane - ''    (L-10019, T-10019, R-9980, B-9980)
#    |    | ['', 'Pane2', '0', '1']
#    |
#    | Pane - ''    (L948, T249, R1698, B923)
#    | ['2', 'Pane3']
# None
#10.通过路径去打开一个已有程序
#11.鼠标控制
x=0
y=
  • 1
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值