def Daochu_zichanbaobiao(exePath, imPath, exPath, fundName, gzPath, gzName, gzPW, cwPath, cwName, cwPW, o32Path, o32Name, o32PW, year, month, day, blacklist, email_server_url, email_server_port, sender_email, sender_passwd, reciever_email, jijinListTotal, jijinListSelected): from pywinauto.application import Application from pywinauto.keyboard import send_keys from pywinauto import mouse from pywinauto import timings from time import sleep from common import restart_if_app_exist, verify_control_exception, send_email_to_admin from login import process_app_login # exepath = r"C:\Program Files (x86)\赢时胜资产财务估值系统V2.5\YssReport.exe" restart_if_app_exist(cwPath) sleep(3) app = Application(backend="win32").start(cwPath) #处理登录 process_app_login(app, cwName, cwPW) sleep(1) #--------------------------------------------------------------------------------------------------- #打开报表左侧“资产估值表” dlg_main = app["ThunderRT6MDIForm"] dlg_main.set_focus() mouse.click(coords=(182, 227)) #TODO sleep(1) mouse.click(coords=(78, 347)) #TODO #dlg_main["ThunderRT6PictureBoxDC7"].set_focus() #dlg_main["ThunderRT6PictureBoxDC7"].click() sleep(1) #输入日期 dlg_main["DTPicker20WndClass2"].set_focus() SendKeys(year) SendKeys("{RIGHT}") SendKeys(month) SendKeys("{RIGHT}") SendKeys(day) SendKeys("{ENTER}") sleep(2) #点击基金浏览 dlg_main["基金列表>>"].set_focus() dlg_main["基金列表>>"].click() sleep(2) mouse.click(coords=(384, 127)) #mouse.click(coords=(406,145)) #mouse.click(coords=(402,157)) #点击浏 览 dlg_main["浏 览"].set_focus() dlg_main["浏 览"].click() sleep(2) while True: #等待保存成功后的弹窗 try: if verify_control_exception(app.top_window(), blacklist): send_email_to_admin("helloworld", email_server_url, email_server_port, sender_email, sender_passwd, reciever_email, exPath + "/对帐结果管理.xls") sleep(300) try: if not dlg_main["Progress Bar"].exist(): break except Exception: break app.top_window()["确定"].set_focus() app.top_window()["确定"].click() sleep(1) except Exception: None #点击保存excel dlg_main["msvb_lib_toolbar"].click(coords=(71, 10)) #输出excel dlg_outxls = app["输出EXCEL"] dlg_outxls.set_focus() dlg_outxls.Edit2.set_text(exPath) dlg_outxls.Edit3.set_text(r"对帐结果管理.xls") dlg_outxls["确 定"].click() sleep(2) #等待保存的进度条出现 while True: #等待保存成功后的弹窗 try: if verify_control_exception(app.top_window(), []): send_email_to_admin("helloworld", email_server_url, email_server_port, sender_email, sender_passwd, reciever_email, exPath + "/对帐结果管理.xls") sleep(300) try: app["导出EXCEL文件Dialog"]["是(Y)"].set_focus() app["导出EXCEL文件Dialog"]["是(Y)"].click() except Exception: None try: if dlg_outxls["ProgressBar20WndClass"].exists(): break except Exception: None except Exception: None #等待进度条完成 while True: #等待保存成功后的弹窗 try: if verify_control_exception(app.top_window(), []): send_email_to_admin("helloworld", email_server_url, email_server_port, sender_email, sender_passwd, reciever_email, exPath + "/对帐结果管理.xls") sleep(300) try: app["导出EXCEL文件Dialog"]["确定"].set_focus() app["导出EXCEL文件Dialog"]["确定"].click() sleep(1) except Exception: None try: if not dlg_outxls["ProgressBar20WndClass"].exists(): break except Exception: break except Exception: None #退出 try: dlg_main.close() except timings.TimeoutError: app.top_window()["是(Y)"].click()
def Daochu_shuju(exePath, imPath, exPath, jijinCurrent, gzPath, gzName, gzPW, cwPath, cwName, cwPW, o32Path, o32Name, o32PW, year, month, day, blacklist, email_server_url, email_server_port, sender_email, sender_passwd, reciever_email, jijinListTotal, jijinListSelected): from pywinauto.application import Application from pywinauto.keyboard import SendKeys from pywinauto import mouse from pywinauto import timings from time import sleep from common import restart_if_app_exist, verify_control_exception, send_email_to_admin, choose_jijin_in_list from login import process_app_login # exepath = r"C:\Program Files (x86)\赢时胜资产财务估值系统V2.5\YssGz.exe" restart_if_app_exist(gzPath) sleep(3) app = Application(backend="win32").start(gzPath) process_app_login(app, gzName, gzPW) sleep(3) #打开数据管理 dlg_main = app["ThunderRT6MDIForm"] dlg_main.set_focus() ctl_sysnvg = dlg_main["系统功能导航"] ctl_sysnvg.ThunderRT6UserControlDC6.click() sleep(3) # #输入日期 dlg_main["DTPicker20WndClass2"].set_focus() SendKeys(year) SendKeys("{RIGHT}") SendKeys(month) SendKeys("{RIGHT}") SendKeys(day) SendKeys("{ENTER}") sleep(2) #输入文件路径 dlg_main["按时间段读取Edit2"].set_text(imPath) #进入到数据管理页面 ctl_treedview = dlg_main["TreeView20WndClass"] ctl_treedview.set_focus() # SendKeys("{LEFT}") # gd.getCtn1() # 选择基金 dlg_main["TreeView20WndClass1"].set_focus() choose_jijin_in_list(jijinListTotal, jijinListSelected, jijinCurrent) sleep(1) ctl_treedview = dlg_main["TreeView20WndClass2"] ctl_treedview.set_focus() ctl_treedview.click(coords=(60, 100)) sleep(1) dlg_main["读取数据"].set_focus() dlg_main["读取数据"].click() sleep(1) while True: #等待保存成功后的弹窗 try: if verify_control_exception(app.top_window(), blacklist): send_email_to_admin("helloworld", email_server_url, email_server_port, sender_email, sender_passwd, reciever_email, exPath + "/对帐结果管理.xls") sleep(300) try: if app["数据接口管理Dialog"]["读取完毕"].exists(): app["数据接口管理Dialog"].set_focus() app["数据接口管理Dialog"]["确定"].click() break except Exception: None SendKeys("{ENTER}") #app.top_window()["是(Y)"].set_focus() #app.top_window()["是(Y)"].click() sleep(1) except Exception: None #退出 try: dlg_main.close() except timings.TimeoutError: app.top_window()["是(Y)"].click()
def Daochu_jijinzichan(exePath, imPath, exPath, fundName, gzPath, gzName, gzPW, cwPath, cwName, cwPW, o32Path, o32Name, o32PW, year, month, day, blacklist, email_server_url, email_server_port, sender_email, sender_passwd, reciever_email, jijinListTotal, jijinListSelected): from pywinauto.application import Application from pywinauto.keyboard import SendKeys from pywinauto import timings from time import sleep from pywinauto import mouse from common import restart_if_app_exist, verify_control_exception, send_email_to_admin from login import process_app_login # exepath = r"F:\O32测试环境\trade\trade.exe" restart_if_app_exist(o32Path) sleep(3) app = Application(backend="win32").start(o32Path) #如果有提示更新,点击确定 sleep(1) SendKeys("{ENTER}") sleep(1) try: app["提示"]["确定"].set_focus() app["提示"]["确定"].click() sleep(2) except Exception: None #登陆 app["TfrmLogin"].wait('exists enabled visible ready') app["TfrmLogin"].set_focus() app["TfrmLogin"]["登录Edit2"].set_text("0") sleep(2) app["TfrmLogin"]["登录Button"].set_focus() app["TfrmLogin"]["登录Button"].click() sleep(5) #如果有警告,点击是 try: app["警告"]["是(Y)"].set_focus() app["警告"]["是(Y)"].click() sleep(5) except Exception: None try: app["自动更新"].set_focus() # 自动更新界面点关闭 app["自动更新"]["关闭(Esc/Enter)"].click() sleep(5) app["警告"]["是(Y)"].set_focus() app["警告"]["是(Y)"].click() sleep(5) except Exception: None #主界面出现 dlg_main = app["TfrmMain"] dlg_main.wait('exists enabled visible ready') #点击信息查询->综合信息查询 mouse.click(coords=(86, 780)) #TODO sleep(3) mouse.click(coords=(68, 311)) #TODO sleep(5) #等待综合信息查询界面出现 #dlg_main["基金资产[4]"].wait('exists enabled visible ready') #dlg_main["基金资产[4]"].set_focus() dlg_main["基金资产[4]"].click() mouse.click(coords=(324, 118)) #TODO sleep(3) mouse.click(coords=(137, 89)) #TODO SendKeys("-1") sleep(2) mouse.click(coords=(142, 109)) #TODO #dlg_main["THsEdit"].set_text("-1 所有基金") #dlg_main["THsEdit"].set_text("2 银华优势") sleep(20) #点击输出框后点保存 dlg_main["TPanel"].set_focus() mouse.click(coords=(455, 142)) #TODO sleep(5) app["另存为"]["保存(S)"].set_focus() app["另存为"]["保存(S)"].click() sleep(1) SendKeys("{LEFT}") sleep(1) SendKeys("{ENTER}") sleep(3) #qiut try: dlg_main.close() except timings.TimeoutError: app.top_window()["是(Y)"].click()
def Shengcheng_guzhibiao(exePath, imPath, exPath, jijinCurrent, gzPath, gzName, gzPW, cwPath, cwName, cwPW, o32Path, o32Name, o32PW, year, month, day, blacklist, email_server_url, email_server_port, sender_email, sender_passwd, reciever_email, jijinListTotal, jijinListSelected): from pywinauto.application import Application from pywinauto.keyboard import SendKeys from pywinauto import timings from time import sleep from pywinauto import mouse from common import restart_if_app_exist, verify_control_exception, send_email_to_admin, choose_jijin_in_list from login import process_app_login # exepath = r"C:\Program Files (x86)\赢时胜资产财务估值系统V2.5\YssGz.exe" restart_if_app_exist(gzPath) sleep(3) app = Application().start(gzPath) #处理登录 process_app_login(app, gzName, gzPW) sleep(1) #打开数据管理 dlg_main = app["ThunderRT6MDIForm"] ctl_sysnvg = dlg_main["msvb_lib_toolbar"] ctl_sysnvg.click(coords=(415, 15)) sleep(1) #输入日期 dlg_main["DTPicker20WndClass2"].set_focus() SendKeys(year) SendKeys("{RIGHT}") SendKeys(month) SendKeys("{RIGHT}") SendKeys(day) sleep(2) # 选择基金 dlg_main["TreeView20WndClass2"].set_focus() choose_jijin_in_list(jijinListTotal, jijinListSelected, jijinCurrent) #勾选生成估值余额对账数据 dlg_main["生成估值余额对账数据"].check() sleep(1) #勾选发送估值余额对账数据 dlg_main["发送估值余额对账数据"].check() sleep(1) #点击生成 dlg_main["生 成"].set_focus() dlg_main["生 成"].click() sleep(1) status = True while status: #判断各种异常的弹框,都点确定 #app.top_window().set_focus() try: if verify_control_exception(app.top_window(), blacklist): send_email_to_admin("helloworld", email_server_url, email_server_port, sender_email, sender_passwd, reciever_email, exPath + "/对帐结果管理.xls") sleep(300) f**k = app.top_window()["确定"] if app["基金资产估值表Dialog"]["产生完毕!"].exists(): app["基金资产估值表Dialog"].set_focus() app["基金资产估值表Dialog"]["确定"].click() status = False else: #SendKeys("{ENTER}") f**k.click() sleep(1) except Exception: None #退出 try: dlg_main.close() except timings.TimeoutError: app.top_window()["是(Y)"].set_focus() app.top_window()["是(Y)"].click()
def Guanli_dianziduizhang(exePath, imPath, exPath, fundName, gzPath, gzName, gzPW, cwPath, cwName, cwPW, o32Path, o32Name, o32PW, year, month, day, blacklist, email_server_url, email_server_port, sender_email, sender_passwd, reciever_email, jijinListTotal, jijinListSelected): from pywinauto.application import Application from pywinauto.keyboard import SendKeys from pywinauto import timings from time import sleep from common import restart_if_app_exist, verify_control_exception, send_email_to_admin, choose_jijin_in_list from login import process_app_login # exepath = r"C:\Program Files (x86)\赢时胜资产财务估值系统V2.5\YssGz.exe" restart_if_app_exist(gzPath) sleep(3) app = Application(backend="win32").start(gzPath) #处理登录 process_app_login(app, gzName, gzPW) sleep(1) #打开数据管理 dlg_main = app["ThunderRT6MDIForm"] dlg_main.set_focus() ctl_sysnvg = dlg_main["系统功能导航"] ctl_sysnvg.ThunderRT6UserControlDC6.click() sleep(1) #点击电子对账管理 dlg_main.set_focus() dlg_main.menu_select("电子对帐 -> 对帐结果管理") sleep(1) #输入日期 dlg_main["DTPicker20WndClass2"].set_focus() SendKeys(year) SendKeys("{RIGHT}") SendKeys(month) SendKeys("{RIGHT}") SendKeys(day) sleep(2) #选择基金 dlg_main["基金列表>>"].set_focus() dlg_main["基金列表>>"].click() sleep(2) choose_jijin_in_list(jijinListTotal, jijinListSelected, fundName, False, True) #点击查询等待结果输出 dlg_main["查询"].set_focus() dlg_main["查询"].click() sleep(1) #点击右键菜单 dlg_main["数据管理"].set_focus() dlg_main["数据管理"].ThunderRT6UserControlDC.click(button=u'right', coords=(300,300)) #选择菜单 #app.menu_select["报表输出 -> 输出为Excel文件"] SendKeys("{DOWN 6}") sleep(2) SendKeys("{RIGHT}") sleep(2) SendKeys("{ENTER}") #输出excel dlg_outxls = app["输出EXCEL"] dlg_outxls.set_focus() dlg_outxls.Edit2.set_text(exPath) dlg_outxls.Edit3.set_text(r"对帐结果管理.xls") sleep(2) dlg_outxls["确 定"].set_focus() dlg_outxls["确 定"].click() sleep(3) while True: #等待保存成功后的弹窗 try: if verify_control_exception(app.top_window(), blacklist): send_email_to_admin("helloworld", email_server_url, email_server_port, sender_email, sender_passwd, reciever_email, exPath + "/对帐结果管理.xls") sleep(300) try: if app["导出EXCEL文件Dialog"]["确定"].exists(): app["导出EXCEL文件Dialog"].set_focus() app["导出EXCEL文件Dialog"]["确定"].click() break except Exception: None app.top_window()["是(Y)"].set_focus() app.top_window()["是(Y)"].click() sleep(1) except Exception: None #退出 try: dlg_main.close() except timings.TimeoutError: app.top_window()["是(Y)"].click() #dlg_login.print_control_identifiers()
def Zhizuo_pingzheng(exePath, imPath, exPath, jijinCurrent, gzPath, gzName, gzPW, cwPath, cwName, cwPW, o32Path, o32Name, o32PW, year, month, day, blacklist, email_server_url, email_server_port, sender_email, sender_passwd, reciever_email, jijinListTotal, jijinListSelected): from pywinauto.application import Application from pywinauto.keyboard import SendKeys from pywinauto import timings from time import sleep from pywinauto import mouse from common import restart_if_app_exist, verify_control_exception, send_email_to_admin, choose_jijin_in_list from login import process_app_login # exepath = r"C:\Program Files (x86)\赢时胜资产财务估值系统V2.5\YssGz.exe" restart_if_app_exist(gzPath) sleep(3) app = Application(backend="win32").start(gzPath) #处理登录 process_app_login(app, gzName, gzPW) sleep(1) #打开数据管理 dlg_main = app["ThunderRT6MDIForm"] ctl_sysnvg = dlg_main["系统功能导航"] ctl_sysnvg.ThunderRT6UserControlDC5.click() sleep(1) #输入日期 dlg_main["DTPicker20WndClass2"].set_focus() SendKeys(year) SendKeys("{RIGHT}") SendKeys(month) SendKeys("{RIGHT}") SendKeys(day) sleep(2) # 选择基金 dlg_main["TreeView20WndClass2"].set_focus() choose_jijin_in_list(jijinListTotal, jijinListSelected, jijinCurrent) #进入到数据管理页面 ctl_treedview = dlg_main["非结转损益"] ctl_treedview.check() sleep(1) dlg_main["制作凭证"].set_focus() dlg_main["制作凭证"].click() sleep(1) status = True while status: #判断各种异常的弹框,都点yes try: if verify_control_exception(app.top_window(), blacklist): send_email_to_admin("helloworld", email_server_url, email_server_port, sender_email, sender_passwd, reciever_email, exPath + "/对帐结果管理.xls") sleep(300) try: if app["业务凭证管理Dialog"]["凭证制作完毕!"].exists(): status = False except Exception: None #SendKeys("{ENTER}") try: app.top_window()["是(Y)"].set_focus() app.top_window()["是(Y)"].click() except Exception: None try: app.top_window()["确定"].set_focus() app.top_window()["确定"].click() except Exception: None sleep(1) except Exception: None try: app.top_window()["确定"].set_focus() app.top_window()["确定"].click() except Exception: None #退出 try: dlg_main.close() except timings.TimeoutError: app.top_window()["是(Y)"].click() #dlg_login.print_control_identifiers()