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标准库之多进程(multiprocessing包)介绍
Nov 25 Python
Python获取DLL和EXE文件版本号的方法
Mar 10 Python
为Python程序添加图形化界面的教程
Apr 29 Python
Phantomjs抓取渲染JS后的网页(Python代码)
May 13 Python
深入浅析Python 中 is 语法带来的误解
May 07 Python
Python 监测文件是否更新的方法
Jun 10 Python
实例详解Python模块decimal
Jun 26 Python
详解python中的time和datetime的常用方法
Jul 08 Python
使用matplotlib的pyplot模块绘图的实现示例
Jul 12 Python
Python Flask异步发送邮件实现方法解析
Aug 01 Python
如何将anaconda安装配置的mmdetection环境离线拷贝到另一台电脑
Oct 15 Python
python 实现性别识别
Nov 21 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之Smarty入门
2007/01/04 PHP
AMFPHP php远程调用(RPC, Remote Procedure Call)工具 快速入门教程
2010/05/10 PHP
sae使用smarty模板的方法
2013/12/17 PHP
windows下安装php的memcache模块的方法
2015/04/07 PHP
PHP XML和数组互相转换详解
2016/10/26 PHP
Laravel5中Cookie的使用详解
2017/05/03 PHP
yii2 resetful 授权验证详解
2017/05/18 PHP
php利用ob_start()清除输出和选择性输出的方法
2018/01/18 PHP
ThinkPHP like模糊查询,like多匹配查询,between查询,in查询,一般查询书写方法
2018/09/26 PHP
Javascript typeof 用法
2008/12/28 Javascript
jquery获取tr中控件值并操作tr实现思路
2013/03/27 Javascript
jquery实现盒子下拉效果示例代码
2013/09/12 Javascript
排序算法的javascript实现与讲解(99js手记)
2014/09/28 Javascript
Summernote实现图片上传功能的简单方法
2016/07/11 Javascript
js仿支付宝多方框输入支付密码效果
2016/09/27 Javascript
JavaScript数组和对象的复制
2017/03/21 Javascript
AngularJS 支付倒计时功能实现思路
2017/06/05 Javascript
Angular2 组件通信的实例代码
2017/06/23 Javascript
浅谈sass在vue注意的地方
2017/08/10 Javascript
使用cropper.js裁剪头像的实例代码
2017/09/29 Javascript
node.js利用socket.io实现多人在线匹配联机五子棋
2018/05/31 Javascript
el-form 多层级表单的实现示例
2020/09/10 Javascript
python urllib爬取百度云连接的实例代码
2017/06/19 Python
Django后台获取前端post上传的文件方法
2018/05/28 Python
Python使用matplotlib和pandas实现的画图操作【经典示例】
2018/06/13 Python
Python猴子补丁Monkey Patch用法实例解析
2020/03/23 Python
Python基于Twilio及腾讯云实现国际国内短信接口
2020/06/18 Python
Bibloo罗马尼亚网站:女装、男装、童装及鞋子和配饰
2019/07/20 全球购物
syb养殖创业计划书
2014/01/09 职场文书
应届毕业生简历自我评价
2014/01/31 职场文书
安全演讲稿大全
2014/05/09 职场文书
企业宣传策划方案
2014/05/29 职场文书
教师廉政准则心得体会
2016/01/20 职场文书
2019企业给员工的慰问信
2019/06/24 职场文书
css3实现背景图片颜色修改的多种方式
2021/04/13 HTML / CSS
Kubernetes关键组件与结构组成介绍
2022/03/31 Servers