python windows程序自动化_Windows GUI程序自动化之pywinauto

一. pywinauto知识点总结

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

1.1pywinauto的安装与配置

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

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_*_

importpywinautofrom pywinauto.mouse import *

from pywinauto.keyboard import *

importtime#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=0for i in range(20):

step_x= i*8step_y= i*5move(coords=(step_x,step_y ))

time.sleep(1)#12.键盘控制#键盘对应的ascii http://www.baike.com/wiki/ASCII#发送键盘指令,打开命令行,输入一条命令for /l %i in (1,1,100

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值