python自动化工具之pywinauto实例详解


Posted in Python onAugust 26, 2019

本文实例为大家分享了python自动化工具pywinauto,供大家参考,具体内容如下

一、win环境应用自动化

1.浏览器中下载

2.在cmd下启动:python get-pip.py

3.在cmd中输入python -m pip --version查看安装pip的版本。

4.模块安装:pip3 install pywinauto

5.程序中加载模块:

import time
from pywinautoimport application

二、实例

#encoding=utf-8
#author: walker
#date: 2018-04-26
#summary: 以 pywinauto 调用 ABBYY FineReader 12 Professional 将 pdf 另存为 txt
#sys.version:'3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 16:07:46) [MSC v.1900 32 bit (Intel)]'
 
import os, sys, time, shutil, ctypes
from pywinauto.application import Application
 
# 转换单个 pdf 为 txt
# 需要保证输出 txt 文件所在目录是存在的,txt 文件不存在
# 外层许捕获异常
def Pdf2Txt(pdfFile, txtFile):
 print('Enter Pdf2Txt ...')
 
 FineReaderPath = r'F:\software\ABBYY FineReader 12\FineReader.exe'
 UsualTimeout = 30 
 
 cmd = r'"%s" "%s"' % (FineReaderPath, pdfFile)
 print('cmd: %s' % cmd)
 app = Application(backend="win32").start(cmd)
 
 mainWindow = app.window(class_name=r'FineReader12MainWindowClass')
 mainWindow.wait("ready", timeout=UsualTimeout)
 
 statButton = mainWindow.child_window(process=app.process, class_name='Button', title_re=r'\d+ OF \d+ PAGES RECOGNIZED')
 
 statButton.wait("exists visible", timeout=UsualTimeout)
 statButton.wait_not("visible", timeout=RecognizeTimeout) # 具体转换可能要很久
 
 mainWindow.dump_tree(filename='mainWindow2.txt')
 
 mainWindow.ToolbarSave.wait('enabled', timeout=RecognizeTimeout).click() # 点击保存按钮
 
 saveDlg = app.window(class_name=r'#32770', title=r'Save document as')
 saveDlg.wait("exists visible", timeout=UsualTimeout)
 saveDlg.dump_tree(filename='saveDlg.txt')
 saveDlg.DUIViewWndClassName.DirectUIHWND.ComboBox2.select('Text (*.txt)') # 设置保存格式
 saveDlg.DUIViewWndClassName.DirectUIHWND.FloatNotifySink.ComboBox.Edit.set_text(txtFile) # 设置保存文件名
 
 saveDlg.DUIViewWndClassName.DirectUIHWND.CheckBox.UncheckByClick() # 取消复选框的选中状态(保存后打开)
 
 # saveDlg.type_keys(r'%S') # 保存为 txt(Alt + S)
 saveDlg.child_window(title="保存(&S)", class_name="Button").wait('ready', timeout=RecognizeTimeout).click() # 点击保存按钮
 print('保存(&S) Button clicked!')
 
 saveDlg.wait_not("exists", timeout=UsualTimeout)
 
 cnt = 0
 for _ in range(0, 100):
 time.sleep(0.1)
 cnt += 1
 if os.path.exists(txtFile):
 break
 
 app.kill()
 
 saveDlg.wait_not("exists", timeout=UsualTimeout)
 mainWindow.wait_not("exists", timeout=20)
 print('not exists mainWindow!')
 print('current time:%f (%s)' % (time.time(), time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())))
 
 return True

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
12步教你理解Python装饰器
Feb 25 Python
python数据处理实战(必看篇)
Jun 11 Python
Python利用splinter实现浏览器自动化操作方法
May 11 Python
Python3用tkinter和PIL实现看图工具
Jun 21 Python
python给微信好友定时推送消息的示例
Feb 20 Python
深入了解Python枚举类型的相关知识
Jul 09 Python
Python求平面内点到直线距离的实现
Jan 19 Python
解析pip安装第三方库但PyCharm中却无法识别的问题及PyCharm安装第三方库的方法教程
Mar 10 Python
Jupyter notebook设置背景主题,字体大小及自动补全代码的操作
Apr 13 Python
python将数据插入数据库的代码分享
Aug 16 Python
Django drf请求模块源码解析
Jun 08 Python
Python中的嵌套循环详情
Mar 23 Python
Python3简单爬虫抓取网页图片代码实例
Aug 26 #Python
python 数据提取及拆分的实现代码
Aug 26 #Python
Python3 使用pillow库生成随机验证码
Aug 26 #Python
python excel转换csv代码实例
Aug 26 #Python
对YOLOv3模型调用时候的python接口详解
Aug 26 #Python
pandas条件组合筛选和按范围筛选的示例代码
Aug 26 #Python
python3 反射的四种基本方法解析
Aug 26 #Python
You might like
德生PL330的评价与改造
2021/03/02 无线电
教你如何把一篇文章按要求分段
2006/10/09 PHP
PHP 程序员应该使用的10个组件
2009/10/31 PHP
使用cookie实现统计访问者登陆次数
2013/06/08 PHP
PHP答题类应用接口实例
2015/02/09 PHP
解析WordPress中控制用户登陆和判断用户登陆的PHP函数
2016/03/01 PHP
php中实现字符串翻转的方法
2017/02/22 PHP
jQuery UI插件自定义confirm确认框的方法
2015/03/20 Javascript
JS获取随机数和时间转换的简单实例
2016/07/10 Javascript
微信小程序 教程之列表渲染
2016/10/18 Javascript
vue2.0 keep-alive最佳实践
2017/07/06 Javascript
详解JavaScript中的六种错误类型
2017/09/21 Javascript
vue router-link传参以及参数的使用实例
2017/11/10 Javascript
小程序绑定用户方案优化小结
2019/05/15 Javascript
bootstrap table.js动态填充单元格数据的多种方法
2019/07/18 Javascript
[01:14]2014DOTA2展望TI 剑指西雅图newbee战队专访
2014/06/30 DOTA
[04:01]2014DOTA2国际邀请赛 TITAN告别Ohaiyo期望明年再战
2014/07/15 DOTA
[01:33:14]LGD vs VP Supermajor 败者组决赛 BO3 第二场 6.10
2018/07/04 DOTA
Python使用django获取用户IP地址的方法
2015/05/11 Python
Python模拟登录的多种方法(四种)
2018/06/01 Python
Python pycharm 同时加载多个项目的方法
2019/01/17 Python
python安装pywin32clipboard的操作方法
2019/01/24 Python
python实现矩阵打印
2019/03/02 Python
windows下安装Python虚拟环境virtualenvwrapper-win
2019/06/14 Python
TensorFLow 变量命名空间实例
2020/02/11 Python
Python利用FFT进行简单滤波的实现
2020/02/26 Python
Django自关联实现多级联动查询实例
2020/05/19 Python
Python魔术方法专题
2020/06/19 Python
IE滤镜与CSS3效果(详细整理分享)
2013/01/25 HTML / CSS
详解HTML5中的Communication API基本使用方法
2016/01/29 HTML / CSS
演讲稿祖国在我心中
2014/05/04 职场文书
行政专员岗位职责范本
2014/08/26 职场文书
领导班子群众路线与四风问题对照检查材料思想汇报
2014/10/11 职场文书
上甘岭观后感
2015/06/10 职场文书
JS 基本概念详细介绍
2021/10/16 Javascript
Python OpenCV超详细讲解基本功能
2022/04/02 Python