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 urlopen 使用小示例
Sep 06 Python
Python常用字符串替换函数strip、replace及sub用法示例
May 21 Python
pycharm 主题theme设置调整仿sublime的方法
May 23 Python
Numpy array数据的增、删、改、查实例
Jun 04 Python
Python实现的绘制三维双螺旋线图形功能示例
Jun 23 Python
Python定时任务sched模块用法示例
Jul 16 Python
pandas取出重复数据的方法
Jul 04 Python
django drf框架自带的路由及最简化的视图
Sep 10 Python
Python 图像对比度增强的几种方法(小结)
Sep 25 Python
python-视频分帧&多帧合成视频实例
Dec 10 Python
Python中的xlrd模块使用原理解析
May 21 Python
Python爬虫之Selenium鼠标事件的实现
Dec 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
PHP+APACHE实现用户论证的方法
2006/10/09 PHP
PHP简单系统数据添加以及数据删除模块源文件下载
2008/06/07 PHP
使用eAccelerator加密PHP程序
2008/10/03 PHP
浅谈php函数serialize()与unserialize()的使用方法
2014/08/19 PHP
php中print(),print_r(),echo()的区别详解
2014/12/01 PHP
深入解析PHP中foreach语句控制数组循环的用法
2015/11/30 PHP
laravel如何开启跨域功能示例详解
2017/08/31 PHP
javascript类继承机制的原理分析
2009/09/12 Javascript
js常用排序实现代码
2010/12/28 Javascript
JavaScript 函数参数是传值(byVal)还是传址(byRef) 分享
2013/07/02 Javascript
JSON格式的键盘编码对照表
2015/01/29 Javascript
DOM操作一些常用的属性汇总
2015/03/13 Javascript
JavaScript中setter和getter方法介绍
2016/07/11 Javascript
JavaScript定义全局对象的方法示例
2017/01/12 Javascript
Vue.js仿Metronic高级表格(一)静态设计
2017/04/17 Javascript
详解Vue中过度动画效果应用
2017/05/25 Javascript
利用require.js与angular搭建spa应用的方法实例
2017/07/19 Javascript
封装运动框架实战左右与上下滑动的焦点轮播图(实例)
2017/10/17 Javascript
对angularJs中ng-style动态改变样式的实例讲解
2018/09/30 Javascript
JS实现指定区域的全屏显示功能示例
2019/04/25 Javascript
Python3读取UTF-8文件及统计文件行数的方法
2015/05/22 Python
Python下载懒人图库JavaScript特效
2015/05/28 Python
python Matplotlib画图之调整字体大小的示例
2017/11/20 Python
python飞机大战pygame游戏框架搭建操作详解
2019/12/17 Python
Pytorch之parameters的使用
2019/12/31 Python
Python3.7在anaconda里面使用IDLE编译器的步骤详解
2020/04/29 Python
python高级特性简介
2020/08/13 Python
经济实惠的豪华背包和行李袋:Packs Project
2018/10/17 全球购物
iostream与iostream.h的区别
2015/01/16 面试题
医学检验专业大学生求职信
2013/11/18 职场文书
毕业研究生的自我鉴定
2013/11/30 职场文书
初中生自我鉴定
2014/02/04 职场文书
你的创业计划书怎样才能打动风投
2014/02/06 职场文书
小学班干部竞选演讲稿
2014/04/24 职场文书
幼儿园师德师风学习材料
2014/05/29 职场文书
详解Java分布式事务的 6 种解决方案
2021/06/26 Java/Android