python自动化工具之pywinauto实例详解
本文实例为大家分享了python自动化工具pywinauto,供大家参考,具体内容如下
一、win环境应用自动化
1.浏览器中下载
2.在cmd下启动:pythonget-pip.py
3.在cmd中输入python-mpip--version查看安装pip的版本。
4.模块安装:pip3installpywinauto
5.程序中加载模块:
importtime frompywinautoimportapplication
二、实例
#encoding=utf-8
#author:walker
#date:2018-04-26
#summary:以pywinauto调用ABBYYFineReader12Professional将pdf另存为txt
#sys.version:'3.6.5(v3.6.5:f59c0932b4,Mar282018,16:07:46)[MSCv.190032bit(Intel)]'
importos,sys,time,shutil,ctypes
frompywinauto.applicationimportApplication
#转换单个pdf为txt
#需要保证输出txt文件所在目录是存在的,txt文件不存在
#外层许捕获异常
defPdf2Txt(pdfFile,txtFile):
print('EnterPdf2Txt...')
FineReaderPath=r'F:\software\ABBYYFineReader12\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+PAGESRECOGNIZED')
statButton.wait("existsvisible",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'Savedocumentas')
saveDlg.wait("existsvisible",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)Buttonclicked!')
saveDlg.wait_not("exists",timeout=UsualTimeout)
cnt=0
for_inrange(0,100):
time.sleep(0.1)
cnt+=1
ifos.path.exists(txtFile):
break
app.kill()
saveDlg.wait_not("exists",timeout=UsualTimeout)
mainWindow.wait_not("exists",timeout=20)
print('notexistsmainWindow!')
print('currenttime:%f(%s)'%(time.time(),time.strftime('%Y-%m-%d%H:%M:%S',time.localtime())))
returnTrue
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。