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实现的一只从百度开始不断搜索的小爬虫
Aug 13 Python
对python中Matplotlib的坐标轴的坐标区间的设定实例讲解
May 25 Python
python 实现将txt文件多行合并为一行并将中间的空格去掉方法
Dec 20 Python
纯python进行矩阵的相乘运算的方法示例
Jul 17 Python
python3.7 openpyxl 删除指定一列或者一行的代码
Oct 08 Python
在django中使用apscheduler 执行计划任务的实现方法
Feb 11 Python
Python sorted排序方法如何实现
Mar 31 Python
Python django框架 web端视频加密的实例详解
Nov 20 Python
Python WebSocket长连接心跳与短连接的示例
Nov 24 Python
python 实现图与图之间的间距调整subplots_adjust
May 21 Python
python中pd.cut()与pd.qcut()的对比及示例
Jun 16 Python
Python可视化神器pyecharts绘制水球图
Jul 07 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常用函数总结(数组,字符串,时间,文件操作)
2013/06/27 PHP
php遍历目录方法小结
2015/03/10 PHP
Laravel 类和接口注入相关的代码
2019/10/15 PHP
JavaScript中的Document文档对象
2008/01/16 Javascript
javascript 动态参数判空操作
2008/12/22 Javascript
基于Asp.net与Javascript控制的日期控件
2010/05/22 Javascript
Javascript实现返回上一页面并刷新的小例子
2013/12/11 Javascript
JS关闭窗口与JS关闭页面的几种方法小结
2013/12/17 Javascript
通过jquery 获取URL参数并进行转码
2014/08/18 Javascript
JavaScript开发人员的10个关键习惯小结
2014/12/05 Javascript
实现placeholder效果的方案汇总
2015/06/11 Javascript
jquery悬浮提示框完整实例
2016/01/13 Javascript
深入浅析JS是按值传递还是按引用传递(推荐)
2016/09/18 Javascript
Node 自动化部署的方法
2017/10/17 Javascript
详解React Native 采用Fetch方式发送跨域POST请求
2017/11/15 Javascript
详解redux异步操作实践
2018/08/15 Javascript
微信小程序HTTP接口请求封装的实现
2019/02/21 Javascript
ES6知识点整理之Proxy的应用实例详解
2019/04/16 Javascript
es6中reduce的基本使用方法
2019/09/10 Javascript
原生js实现文件上传、下载、封装等实例方法
2020/01/05 Javascript
JS函数基本定义与用法示例
2020/01/15 Javascript
Python创建系统目录的方法
2015/03/11 Python
Python中创建字典的几种方法总结(推荐)
2017/04/27 Python
Python+OpenCV人脸检测原理及示例详解
2020/10/19 Python
[原创]python爬虫(入门教程、视频教程)
2018/01/08 Python
Python多线程模块Threading用法示例小结
2019/11/09 Python
HTML5中微数据概述及在搜索引擎中的使用举例
2013/02/07 HTML / CSS
canvas小画板之平滑曲线的实现
2020/08/12 HTML / CSS
如何做好总经理助理
2013/11/12 职场文书
体育专业个人求职信范文
2013/12/27 职场文书
找工作求职信
2014/07/07 职场文书
校庆团日活动总结
2014/08/28 职场文书
人事行政主管岗位职责
2015/04/09 职场文书
如何制定一份可行的计划!
2019/06/21 职场文书
Python爬虫爬取全球疫情数据并存储到mysql数据库的步骤
2021/03/29 Python
通过Python把学姐照片做成拼图游戏
2022/02/15 Python