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中循环语句的嵌套使用
May 14 Python
Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
Mar 19 Python
Python中交换两个元素的实现方法
Jun 29 Python
Python子类继承父类构造函数详解
Feb 19 Python
TENSORFLOW变量作用域(VARIABLE SCOPE)
Jan 10 Python
jupyter lab的目录调整及设置默认浏览器为chrome的方法
Apr 10 Python
python 双循环遍历list 变量判断代码
May 04 Python
完美解决Django2.0中models下的ForeignKey()问题
May 19 Python
Python发送邮件实现基础解析
Aug 14 Python
Django基于Models定制Admin后台实现过程解析
Nov 11 Python
Python集合的基础操作
Nov 01 Python
python神经网络学习 使用Keras进行回归运算
May 04 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
eAccelerator的安装与使用详解
2013/06/13 PHP
php实现JWT验证的实例教程
2020/11/26 PHP
javascript 特性检测并非浏览器检测
2010/01/15 Javascript
jquery ajax请求实例深入解析
2012/11/26 Javascript
用jQuery实现的智能隐藏、滑动效果的返回顶部代码
2014/03/18 Javascript
jQuery简单tab切换效果实现方法
2015/04/08 Javascript
JavaScript实现点击按钮就复制当前网址
2015/12/14 Javascript
全面了解构造函数继承关键apply call
2016/07/26 Javascript
vue如何实现observer和watcher源码解析
2017/03/09 Javascript
JavaScript基于面向对象实现的猜拳游戏
2018/01/03 Javascript
使用Vue的slot插槽分发父组件内容实现高度复用、更加灵活的组件(推荐)
2018/05/01 Javascript
Vue 父子组件数据传递的四种方式( inheritAttrs + $attrs + $listeners)
2018/05/04 Javascript
Vue项目查看当前使用的elementUI版本的方法
2018/09/27 Javascript
使用pkg打包Node.js应用的方法步骤
2018/10/19 Javascript
vue实现移动端悬浮窗效果
2018/12/01 Javascript
跟老齐学Python之变量和参数
2014/10/10 Python
10个易被忽视但应掌握的Python基本用法
2015/04/01 Python
在Python中用keys()方法返回字典键的教程
2015/05/21 Python
python从入门到精通(DAY 3)
2015/12/20 Python
python实现可以断点续传和并发的ftp程序
2016/09/13 Python
用matplotlib画等高线图详解
2017/12/14 Python
python矩阵转换为一维数组的实例
2018/06/05 Python
完美解决在oj中Python的循环输入问题
2018/06/25 Python
Python读取系统文件夹内所有文件并统计数量的方法
2018/10/23 Python
python Selenium实现付费音乐批量下载的实现方法
2019/01/24 Python
Django 创建新App及其常用命令的实现方法
2019/08/04 Python
Windows下Anaconda安装、换源与更新的方法
2020/04/17 Python
深入浅析python 中的self和cls的区别
2020/06/20 Python
HTML5新增的标签和属性归纳总结
2018/05/02 HTML / CSS
Html5之webcoekt播放JPEG图片流
2020/09/22 HTML / CSS
阿迪达斯希腊官方网上商店:adidas希腊
2019/04/06 全球购物
澳大利亚商务邀请函
2014/01/17 职场文书
员工试用期考核自我鉴定
2014/04/13 职场文书
国家领导干部党的群众路线教育实践活动批评与自我批评材料
2014/09/23 职场文书
2015年度个人思想工作总结
2015/04/08 职场文书
python 如何将两个实数矩阵合并为一个复数矩阵
2021/05/19 Python