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 相关文章推荐
SublimeText 2编译python出错的解决方法(The system cannot find the file specified)
Nov 27 Python
Python中集合类型(set)学习小结
Jan 28 Python
Django自定义用户认证示例详解
Mar 14 Python
Python 3.7新功能之dataclass装饰器详解
Apr 21 Python
opencv python 基于KNN的手写体识别的实例
Aug 03 Python
Python 实现异步调用函数的示例讲解
Oct 14 Python
使用python绘制3维正态分布图的方法
Dec 29 Python
Python实现账号密码输错三次即锁定功能简单示例
Mar 29 Python
Python、 Pycharm、Django安装详细教程(图文)
Apr 12 Python
python多进程间通信代码实例
Sep 30 Python
django序列化serializers过程解析
Dec 14 Python
Python数据分析入门之数据读取与存储
May 13 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
德生PL660的电路分析和打磨
2021/03/02 无线电
thinkPHP多域名情况下使用memcache方式共享session数据的实现方法
2016/07/21 PHP
6个常见的 PHP 安全性攻击实例和阻止方法
2020/12/16 PHP
Javascript调用XML制作连动下拉列表框
2006/06/25 Javascript
popdiv
2006/07/14 Javascript
node在两个div之间移动,用ztree实现
2013/03/06 Javascript
JavaScript中实现最高效的数组乱序方法
2014/10/11 Javascript
electron + vue项目实现打印小票功能及实现代码
2018/11/25 Javascript
js实现延迟加载的几种方法详解
2019/01/19 Javascript
JavaScript实现移动端带transition动画的轮播效果
2020/03/24 Javascript
详解javascript void(0)
2020/07/13 Javascript
Vue中computed及watch区别实例解析
2020/08/01 Javascript
vue-simple-uploader上传成功之后的response获取代码
2020/09/07 Javascript
JavaScript中的Proxy对象
2020/11/27 Javascript
[03:57]DOTA2英雄梦之声_第03期_幻影刺客
2014/06/21 DOTA
python实现读取大文件并逐行写入另外一个文件
2018/04/19 Python
Python实现的根据文件名查找数据文件功能示例
2018/05/02 Python
利用python-pypcap抓取带VLAN标签的数据包方法
2019/07/23 Python
详解python statistics模块及函数用法
2019/10/27 Python
python 实现矩阵按对角线打印
2019/11/29 Python
python读取与处理netcdf数据方式
2020/02/14 Python
python cv2.resize函数high和width注意事项说明
2020/07/05 Python
用ldap作为django后端用户登录验证的实现
2020/12/07 Python
北美大型运动类产品商城:Champs Sports
2017/01/12 全球购物
菲律宾最大的网上花店和礼品店:PhilFlower.com
2018/02/09 全球购物
SneakerStudio英国:最佳运动鞋商店
2019/05/22 全球购物
信息专业本科生个人的自我评价
2013/10/28 职场文书
机械设计毕业生自荐信
2014/02/02 职场文书
外语系毕业生求职自荐信
2014/04/12 职场文书
关于旅游的活动方案
2014/08/15 职场文书
检讨书怎么写
2015/01/23 职场文书
云冈石窟导游词
2015/02/04 职场文书
小学开学典礼新闻稿
2015/07/17 职场文书
导游词之澳门玫瑰圣母堂
2019/12/03 职场文书
PyTorch 实现L2正则化以及Dropout的操作
2021/05/27 Python
Redis实现短信验证码登录的示例代码
2022/06/14 Redis