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 相关文章推荐
python实现在字符串中查找子字符串的方法
Jul 11 Python
python开发之for循环操作实例详解
Nov 12 Python
Python的Flask框架的简介和安装方法
Nov 13 Python
Python利用flask sqlalchemy实现分页效果
Aug 02 Python
matplotlib设置legend图例代码示例
Dec 19 Python
浅析Python 3 字符串中的 STR 和 Bytes 有什么区别
Oct 14 Python
对Python 两大环境管理神器 pyenv 和 virtualenv详解
Dec 31 Python
python中aioysql(异步操作MySQL)的方法
Apr 11 Python
关于PyTorch源码解读之torchvision.models
Aug 17 Python
Python基础之列表常见操作经典实例详解
Feb 26 Python
在 Python 中使用 MQTT的方法
Aug 18 Python
Python爬虫获取op.gg英雄联盟英雄对位胜率的源码
Jan 29 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
PHP strstr 函数判断字符串是否否存在的实例代码
2013/09/28 PHP
smarty模板局部缓存方法使用示例
2014/06/17 PHP
PHP计算指定日期所在周的开始和结束日期的方法
2015/03/24 PHP
Avengerls vs Newbee BO3 第一场2.18
2021/03/10 DOTA
escape、encodeURI、encodeURIComponent等方法的区别比较
2006/12/27 Javascript
Javascript 验证上传图片大小[客户端]
2009/08/01 Javascript
jquery如何改变html标签的样式(两种实现方法)
2013/01/16 Javascript
DOM节点删除函数removeChild()用法实例
2015/01/12 Javascript
图解JavaScript中的this关键字
2020/05/28 Javascript
jQuery Form 表单提交插件之formSerialize,fieldSerialize,fieldValue,resetForm,clearForm,clearFields的应用
2016/01/23 Javascript
Bootstrap fileinput文件上传预览插件使用详解
2017/05/16 Javascript
React Native之TextInput组件解析示例
2017/08/22 Javascript
AngularJS 教程及实例代码
2017/10/23 Javascript
Vue中使用sass实现换肤功能
2018/09/07 Javascript
微信小程序云开发使用方法新手初体验
2019/05/16 Javascript
通过实例解析js简易模块加载器
2019/06/17 Javascript
bootstrap table实现横向合并与纵向合并
2019/07/18 Javascript
[48:26]VGJ.S vs infamous Supermajor 败者组 BO3 第二场 6.4
2018/06/05 DOTA
[56:58]VP vs Optic 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
tensorflow实现对图片的读取的示例代码
2018/02/12 Python
在python中获取div的文本内容并和想定结果进行对比详解
2019/01/02 Python
浅谈Python基础—判断和循环
2019/03/22 Python
Python3 操作 MySQL 插入一条数据并返回主键 id的实例
2020/03/02 Python
scrapy-redis分布式爬虫的搭建过程(理论篇)
2020/09/29 Python
html5 Canvas画图教程(4)—未闭合的路径及渐变色的填充方法
2013/01/09 HTML / CSS
Made in Design德国:设计师家具、灯具和装饰
2019/10/31 全球购物
电子商务专业实习生自我鉴定
2013/09/24 职场文书
财务负责人任命书
2014/06/06 职场文书
党员干部反四风民主生活会对照检查材料思想汇报
2014/10/12 职场文书
幼儿园小班见习报告
2014/10/31 职场文书
2015年保险公司内勤工作总结
2015/05/23 职场文书
毕业酒会致辞
2015/07/29 职场文书
财务会计个人原因辞职信
2019/06/21 职场文书
2019最新版火锅店的创业计划书 !
2019/07/12 职场文书
创业计划书之家教中心
2019/09/25 职场文书
docker compose 部署 golang 的 Athens 私有代理问题
2022/04/28 Servers