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 相关文章推荐
在Django的模板中使用认证数据的方法
Jul 23 Python
Python首次安装后运行报错(0xc000007b)的解决方法
Oct 18 Python
解决Python中字符串和数字拼接报错的方法
Oct 23 Python
python+Splinter实现12306抢票功能
Sep 25 Python
在matplotlib的图中设置中文标签的方法
Dec 13 Python
对python3 中方法各种参数和返回值详解
Dec 15 Python
Python去除字符串前后空格的几种方法
Mar 04 Python
python并发编程多进程 模拟抢票实现过程
Aug 20 Python
新版Pycharm中Matplotlib不会弹出独立的显示窗口的问题
Jun 02 Python
python框架flask入门之路由及简单实现方法
Jun 07 Python
selenium学习教程之定位以及切换frame(iframe)
Jan 04 Python
python re模块常见用法例举
Mar 01 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
杏林同学录(二)
2006/10/09 PHP
PHP 基本语法格式
2009/12/15 PHP
PHP导出MySQL数据到Excel文件(fputcsv)
2011/07/03 PHP
php中长文章分页显示实现代码
2012/09/29 PHP
php实现QQ小程序发送模板消息功能
2019/09/18 PHP
addRule在firefox下的兼容写法
2006/11/30 Javascript
学习YUI.Ext 第六天--关于树TreePanel(Part 1)
2007/03/10 Javascript
jquery中get,post和ajax方法的使用小结
2014/02/04 Javascript
angular中使用路由和$location切换视图
2015/01/23 Javascript
JavaScript 封装一个tab效果源码分享
2015/09/15 Javascript
Bootstrap每天必学之导航
2015/11/26 Javascript
深入了解JavaScript的逻辑运算符(与、或)
2016/12/20 Javascript
Ionic2调用本地SQlite实例
2017/04/22 Javascript
jquery Ajax实现Select动态添加数据
2017/06/08 jQuery
详解angularjs跨页面传参遇到的一些问题
2018/11/01 Javascript
vue+element导航栏高亮显示的解决方式
2019/11/12 Javascript
vue组件入门知识全梳理
2020/09/21 Javascript
[00:15]天涯墨客终极技能展示
2018/08/25 DOTA
Python实现把xml或xsl转换为html格式
2015/04/08 Python
python获取mp3文件信息的方法
2015/06/15 Python
python列出目录下指定文件与子目录的方法
2015/07/03 Python
Python根据欧拉角求旋转矩阵的实例
2019/01/28 Python
聊聊python里如何用Borg pattern实现的单例模式
2019/06/06 Python
Python爬虫爬取百度搜索内容代码实例
2020/06/05 Python
python基于pygame实现飞机大作战小游戏
2020/11/19 Python
html5中audio支持音频格式的解决方法
2018/08/24 HTML / CSS
Omio法国:全欧洲低价大巴、火车和航班搜索和比价
2017/11/13 全球购物
Feelunique美国:欧洲大型的在线美妆零售电商
2018/11/04 全球购物
彪马英国官网:PUMA英国
2019/02/11 全球购物
介绍一下Ruby中的对象,属性和方法
2012/07/11 面试题
运动会解说词100字
2014/01/31 职场文书
伊琍体标语
2014/06/25 职场文书
出资证明书范本(标准版)
2014/09/24 职场文书
2016学习雷锋精神活动倡议书
2015/04/27 职场文书
《领导干部从政道德启示录》学习心得体会
2016/01/20 职场文书
解决Nginx 配置 proxy_pass 后 返回404问题
2021/03/31 Servers