def component_search(self): """构建搜索""" w0 = WinControl(self.BECivilWin) if w0.exists(): w0.wait(3) m1 = MouseControl() m1.click(self.BECivilWin, '', screen_point.操作[0], screen_point.操作[1]) m1.click(self.BECivilWin, '', screen_point.构件搜索[0], screen_point.构件搜索[1]) w1 = WinControl('构件搜索') sleep(2) if w1.exists(): w1.wait(2) w1.controlSetText('[CLASS:Edit; INSTANCE:1]', 'TWQ2') w1.controlClick('[CLASS:Button; INSTANCE:5]') sleep(2) w1.controlClick('[CLASS:Button; INSTANCE:1]') sleep(2) w2 = WinControl('搜索结果') if w2.exists(): w2.wait(3) w2.controlClick('[CLASS:Button; INSTANCE:3]') else: raise Exception("未打开搜索结果窗口") else: raise Exception("未打开构件搜索窗口") sleep(2) m1.click(self.BECivilWin, '', screen_point.构件搜索[0], screen_point.构件搜索[1]) else: raise Exception("未识别BECivil窗口")
def manage_working_set(self): """管理工作集""" w0 = WinControl(self.BECivilWin) if w0.exists(): w0.wait(3) m1 = MouseControl() m1.click(self.BECivilWin, '', screen_point.系统[0], screen_point.系统[1]) m1.click(self.BECivilWin, '', screen_point.管理工作集[0], screen_point.管理工作集[1]) sleep(2) w1 = WinControl('管理工作集') if w1.exists(): w1.wait(3) #w1.setState(3) w1.controlSetText('[CLASS:Edit; INSTANCE:1]', '测试脚本用创建工作集') sleep(3) # 选中要删除的工作集 m1.click('管理工作集', '', 880, 390) sleep(2) # 点击删除 m1.click('管理工作集', '', 870, 760) sleep(2) if w0.exists(): sleep(2) t1 = w0.getPos() if t1 == (844, 438, 1076, 602): pass else: raise Exception('Something went wrong.') w0.controlClick('[CLASS:Button; INSTANCE:1]') sleep(3) if w0.exists(): t2 = w0.getPos() if t2 == (880, 438, 1040, 602): pass else: raise Exception('Something went wrong.') sleep(2) if w0.exists(): t3 = w0.getPos() if t3 == (880, 438, 1040, 602): pass else: raise Exception('Something went wrong.') w0.controlClick('[CLASS:Button; INSTANCE:1]') else: raise Exception('未弹出删除确认框') else: raise Exception('未弹出删除成功选择框') else: raise Exception('未弹出删除工作集选择框') sleep(2) # 关闭管理工作集窗口 m1.click('管理工作集', '', 1114, 263) else: raise Exception("未弹出管理工作集窗口") else: raise Exception("未识别BECivil窗口")
def add_node(self): """添加钢筋节点""" w0 = WinControl(self.BECivilWin) if w0.exists(): w0.wait(3) m1 = MouseControl() sleep(2) # 使视图视角变为俯视视角 m1.click(self.BECivilWin, '', 440, 440, button='right') m1.click(self.BECivilWin, '', 490, 475) m1.click(self.BECivilWin, '', screen_point.操作[0], screen_point.操作[1]) m1.click(self.BECivilWin, '', screen_point.插入节点[0], screen_point.插入节点[1]) w1 = WinControl('插入节点') sleep(1) if w1.exists(): w1.wait(3) # 上传文件 m1.click('插入节点', '', 970, 360) sleep(1) w2 = WinControl('打开') if w2.exists(): w2.wait(3) m1.click('打开', '', 1000, 50) w2.controlSetText('[CLASS:Edit; INSTANCE:2]', self.uploadaddress) autoit.send("{ENTER}") sleep(1) w2.controlSetText('[CLASS:Edit; INSTANCE:1]', '钢筋节点 (2).lbg') w2.controlClick('[CLASS:Button; INSTANCE:1]') else: raise Exception('未打开上传节点文件窗口') sleep(2) # 详细位置 m1.click('插入节点', '', 970, 450) sleep(1) # 选择要插入节点的位置 m1.click(self.BECivilWin, '', 1050, 504) m1.click(self.BECivilWin, '', 1050, 504, button='right') sleep(1) m1.click(self.BECivilWin, '', 1100, 514) sleep(2) w1.controlClick('[CLASS:Button; INSTANCE:1]') sleep(5) if w0.exists(): w0.wait(3) t = w0.getPos() if t == (862, 438, 1058, 602): pass else: raise Exception('Something went wrong.') w0.controlClick('[CLASS:Button; INSTANCE:1]') else: raise Exception('节点插入未成功') else: raise Exception('未打开插入节点窗口') else: raise Exception('未识别BECivil窗口')
def setting(self): """设置""" w0 = WinControl(self.BECivilWin) if w0.exists(): w0.wait(3) m1 = MouseControl() m1.click(self.BECivilWin, '', screen_point.任务[0], screen_point.任务[1]) m1.click(self.BECivilWin, '', screen_point.设置[0], screen_point.设置[1]) ''' m1.click(self.BECivilWin, '', screen_point.设置[0], 140)# 仪器信息 sleep(1) w1 = WinControl('仪器信息') if w1.exists(): w1.wait(3) w1.controlClick('[CLASS:Button; INSTANCE:1]') sleep(1) m1.click('仪器信息', '', 910, 650) autoit.send('测试脚本用添加仪器') m1.click('仪器信息', '', 1080, 650) autoit.send('134652') autoit.send("{ENTER}") m1.click('仪器信息', '', 1180, 370)# 关闭仪器信息 else: raise Exception('未打开仪器信息窗口') sleep(1) m1.click(self.BECivilWin, '', screen_point.设置[0], screen_point.设置[1]) ''' # 点位图管理 m1.click(self.BECivilWin, '', screen_point.设置[0], 160) sleep(2) w2 = WinControl('点位图管理') if w2.exists(): w2.wait(3) w2.controlClick("[CLASS:Button; INSTANCE:1]") sleep(1) # 截图点位图 m1.click(self.BECivilWin, '', 710, 390, button='right') m1.click(self.BECivilWin, '', 660, 405) sleep(2) w3 = WinControl('点位图命名') if w3.exists(): w3.wait(3) w3.controlSetText('[CLASS:Edit; INSTANCE:1]', '测试脚本用点位图') sleep(1) w3.controlClick('[CLASS:Button; INSTANCE:1]') else: raise Exception('未打开点位图命名窗口') sleep(1) # 关闭点位图管理 m1.click('点位图管理', '', 1336, 183) else: raise Exception('未打开点位图管理窗口') else: raise Exception('未识别市政窗口')
def upload_project(self, projectname): """上传工程""" w0 = WinControl(self.BECivilWin) if w0.exists(): m1 = MouseControl() m1.click(self.BECivilWin, '', screen_point.系统[0], screen_point.系统[1]) m1.click(self.BECivilWin, '', screen_point.上传工程[0], screen_point.上传工程[1]) w1 = WinControl("打开") sleep(4) if w1.exists(): w1.wait(3) w1.setState(3) # 输入保存上传工程的地址 m1.click('打开', '', 820, 45) w1.controlSetText('[CLASS:Edit; INSTANCE:2]', self.uploadaddress) autoit.send("{ENTER}") sleep(2) w1.controlSetText('[CLASS:Edit; INSTANCE:1]', projectname) w1.controlClick('[CLASS:Button; INSTANCE:1]') sleep(2) w2 = WinControl("上传工程") sleep(2) if w2.exists(): w2.wait(3) w2.controlClick('[CLASS:Button; INSTANCE:3]') sleep(3) w3 = WinControl("上传位置") if w3.exists(): w3.wait(3) # 选择IM测试 m1.click(self.BECivilWin, '', 940, 435) sleep(1) w3.controlClick("[CLASS:Button; INSTANCE:1]") else: raise Exception('未选中上传位置窗口') sleep(1) w2.controlClick('[CLASS:Button; INSTANCE:1]') else: raise Exception('未选中上传工程窗口') else: raise Exception('未选中打开窗口') sleep(22) w5 = WinControl("Luban Explorer(Civil)提醒您") w5.wait(60) if w5.exists(): pass else: raise Exception("上传成功提示未显示") else: raise Exception("未识别BECivil窗口")
def creat_working_set(self): """创建工作集""" w0 = WinControl(self.BECivilWin) if w0.exists(): w0.wait(3) m1 = MouseControl() m1.click(self.BECivilWin, '', screen_point.系统[0], screen_point.系统[1]) m1.click(self.BECivilWin, '', screen_point.创建工作集[0], screen_point.创建工作集[1]) w1 = WinControl('创建工作集') sleep(2) if w1.exists(): w1.wait(3) w1.controlSetText('[CLASS:Edit; INSTANCE:1]', '测试脚本用创建工作集') w1.controlClick('[CLASS:Button; INSTANCE:1]') w2 = WinControl('选择所属项目部') sleep(2) if w2.exists(): # 选择IM测试 m1.click('选择所属项目部', '', 850, 385) w2.controlClick('[CLASS:Button; INSTANCE:1]') else: raise Exception("未选中选择所属项目部窗口") sleep(2) # 选中需要创建工作集的两个工程 m1.click('创建工作集', '', 780, 390) m1.click('创建工作集', '', 780, 420) w1.controlClick('[CLASS:Button; INSTANCE:3]') sleep(2) if w0.exists(): w0.wait(3) t = w0.getPos() if t == (826, 438, 1094, 602): pass else: raise Exception('未弹出打开工作集选择框') sleep(1) w0.controlClick('[CLASS:Button; INSTANCE:2]') else: raise Exception('未弹出打开工作集选择框') else: raise Exception("未选中创建工作集窗口") else: raise Exception("未识别BECivil窗口")
def open_working_set(self): """打开工作集""" w0 = WinControl(self.BECivilWin) if w0.exists(): w0.wait(3) m1 = MouseControl() m1.click(self.BECivilWin, '', screen_point.系统[0], screen_point.系统[1]) m1.click(self.BECivilWin, '', screen_point.打开工作集[0], screen_point.打开工作集[1]) sleep(3) w1 = WinControl('打开工作集') if w1.exists(): w1.setState(3) w1.controlSetText('[CLASS:Edit; INSTANCE:1]', '测试脚本用创建工作集') sleep(3) # 打开工作集,因为有时候双击会出现打不开的情况,故设置点击数为3 m1.click('打开工作集', '', 92, 134, clicks=3) else: raise Exception("未选中打开工作集窗口") else: raise Exception("未识别BECivil窗口")
def start_BECivli(self): """登录BECivil""" # 判断屏幕分辨率是否为1920*1080 if verifySystemMetrics(1920, 1080) == True: pass else: raise Exception("分辨率不为1920*1080,请更改分辨率") # 判断Shell、BECivil和IM是否存在,若存在则退出 processes = [ ProcessControl(self.IMProcess), ProcessControl(self.BECivilProcess), ProcessControl(self.ShellProcess) ] for process in processes: if process.exists(): process.close() # 启动软件以及登录 try: autoit.run(self.path) except Exception as e: print(e) print('软件安装路径有误,或者软件安装路径中有中文,\nstart_APP函数中path变量前需要加r!') else: w1 = WinControl('用户登录') w1.wait() if w1.exists(): w1.controlSetText('[CLASS:Edit; INSTANCE:1]', self.username) w1.controlSetText('[CLASS:Edit; INSTANCE:2]', self.password) w1.controlSetText('[CLASS:Edit; INSTANCE:3]', self.ip) w1.controlClick('Button1') # 等待BECivil界面 w2 = WinControl(self.BECivilWin) w2.wait(25) w2.setState(3) sleep(1) """
def upload_picture(self): """ """ w0 = WinControl(self.BECivilWin) if w0.exists(): w0.wait(3) m1 = MouseControl() m1.click(self.BECivilWin, '', screen_point.沙盘[0], screen_point.沙盘[1]) m1.click(self.BECivilWin, '', screen_point.上传图片[0], screen_point.上传图片[1]) sleep(1) w1 = WinControl('打开') if w1.exists(): w1.wait(3) m1.click('打开', '', 1110, 45) sleep(1) w1.controlSetText('[CLASS:Edit; INSTANCE:2]', self.uploadaddress) autoit.send("{ENTER}") sleep(1) w1.controlSetText('[CLASS:Edit; INSTANCE:1]', r'picture1.jpg') sleep(1) w1.controlClick("[CLASS:Button; INSTANCE:1]") sleep(3) if w0.exists(): w0.wait(3) t = w0.getPos() if t == (874, 438, 1046, 602): pass else: raise Exception('Something went wrong.') w0.controlClick("[CLASS:Button; INSTANCE:1]") else: raise Exception("未弹出上传成功窗口") else: raise Exception("未弹出打开窗口") else: raise Exception("未识别BECivil窗口")
def export_the_qr_code(self): """导出二维码""" w0 = WinControl(self.BECivilWin) if w0.exists(): w0.wait(3) m1 = MouseControl() m1.click(self.BECivilWin, '', screen_point.操作[0], screen_point.操作[1]) m1.click(self.BECivilWin, '', screen_point.导出二维码[0], screen_point.导出二维码[1]) # 选中需要导出二维码的构件 m1.click(self.BECivilWin, '', 810, 500) # 右键导出 m1.click(self.BECivilWin, '', 810, 500, button='right') m1.click(self.BECivilWin, '', 730, 510) sleep(2) w1 = WinControl('选择文件夹') if w1.exists(): w1.wait(3) w1.controlSetText('[CLASS:Edit; INSTANCE:1]', self.downloadaddress + '\二维码下载') sleep(1) w1.controlClick('[CLASS:Button; INSTANCE:1]') else: raise Exception("未打开选择文件夹窗口") sleep(3) if w0.exists(): w0.wait(3) t = w0.getPos() if t == (862, 438, 1058, 602): pass else: raise Exception('Something went wrong.') sleep(1) w0.controlClick('[CLASS:Button; INSTANCE:1]') else: raise Exception("未弹出导出二维码成功窗口") else: raise Exception("未识别BECivil窗口")
def measure_report(self): """监测报告""" w0 = WinControl(self.BECivilWin) if w0.exists(): w0.wait(3) m1 = MouseControl() m1.click(self.BECivilWin, '', screen_point.任务[0], screen_point.任务[1]) m1.click(self.BECivilWin, '', screen_point.监测报告[0], screen_point.监测报告[1]) sleep(1) # 创建报告 m1.click(self.BECivilWin, '', 1190, 270) sleep(1) w1 = WinControl("新建报告") if w1.exists(): w1.wait(3) # 报告名称 m1.click('新建报告', '', 980, 400) autoit.send('测试脚本用报告') # 期号 m1.click('新建报告', '', 980, 440) autoit.send('1') # 编号 m1.click('新建报告', '', 980, 480) autoit.send('123456') # 承包单位 m1.click('新建报告', '', 980, 570) autoit.send('测试脚本用承包单位') # 监理单位 m1.click('新建报告', '', 980, 615) autoit.send('测试脚本用监理单位') sleep(1) w1.controlClick('[CLASS:Button; INSTANCE:1]') else: raise Exception('未打开新建报告窗口') # 点击名称 m1.click(self.BECivilWin, '', 1320, 340) sleep(2) w2 = WinControl("表单列表") if w2.exists(): w2.wait(3) w2.controlClick("[CLASS:Button; INSTANCE:1]") sleep(1) MissionFunctions().add_form() sleep(1) w2.controlClick("[CLASS:Button; INSTANCE:1]") sleep(1) MissionFunctions().add_form(565, '脚本测试用监测成果分析报告') m1.click('表单列表', '', 1260, 235) else: raise Exception('未打开表单列表窗口') # 点击编辑 m1.click(self.BECivilWin, '', 1800, 340) sleep(1) w3 = WinControl("编辑报告") if w3.exists(): w3.wait(3) m1.click('编辑报告', '', 960, 400) autoit.send('测试脚本用报告更改') sleep(1) w3.controlClick("[CLASS:Button; INSTANCE:1]") else: raise Exception("未打开编辑报告窗口") # 点击导出 m1.click(self.BECivilWin, '', 1860, 340) sleep(1) w4 = WinControl('另存为') if w4.exists(): w4.wait(3) m1.click('另存为', '', 1030, 45) w4.controlSetText("[CLASS:Edit; INSTANCE:2]", self.downloadaddress) sleep(1) w4.controlClick('[CLASS:Button; INSTANCE:1]') sleep(1) w5 = WinControl('确认另存为') if w5.exists(): w5.wait(3) w5.controlClick("[CLASS:Button; INSTANCE:1]") else: pass sleep(2) if w0.exists(): w0.wait(3) t1 = w0.getPos() if t1 == (845, 438, 1075, 602): pass else: raise Exception('Something went wrong.') w0.controlClick("[CLASS:Button; INSTANCE:2]") else: pass else: raise Exception('未成功导出报告') sleep(2) # 全部勾选报告 m1.click(self.BECivilWin, '', 1172, 340) sleep(1) # 删除 m1.click(self.BECivilWin, '', 1290, 270) sleep(1) if w0.exists(): w0.wait(3) t2 = w0.getPos() if t2 == (845, 438, 1075, 602): pass else: raise Exception('Something went wrong.') w0.controlClick("[CLASS:Button; INSTANCE:1]") else: raise Exception('删除报告失败') sleep(1) m1.click(self.BECivilWin, '', screen_point.监测报告[0], screen_point.监测报告[1]) else: raise Exception('未识别市政窗口')
def start_BECivil(self): """登录BECivil""" # 判断屏幕分辨率是否为1920*1080 if verifySystemMetrics(1920, 1080) == True: pass else: raise Exception("分辨率不为1920*1080,请更改分辨率") sleep(5) # 初始化登录环境 processes = [ ProcessControl(self.IMProcess), ProcessControl(self.BECivilProcess), ProcessControl(self.ShellProcess) ] for process in processes: if process.exists(): process.close() else: pass sleep(2) # 启动软件以及登录 try: autoit.run(self.path) except Exception as e: print(e) print('软件安装路径有误,或者软件安装路径中有中文,\nstart_APP函数中path变量前需要加r!') else: sleep(3) w1 = WinControl('用户登录') if w1.exists(): w1.wait() w1.controlSetText('[CLASS:Edit; INSTANCE:1]', self.username) w1.controlSetText('[CLASS:Edit; INSTANCE:2]', self.password) w1.controlSetText('[CLASS:Edit; INSTANCE:3]', self.ip) w1.controlClick('Button1') sleep(20) # 如果检测到升级则进行升级过程,若没有则pass w2 = WinControl("Luban Explorer(Civil)版本获取") if w2.exists(): w2.wait(60) print('>>>>>>>>检测到LubanBECivil正在升级') sleep(60) else: pass print('软件未升级') sleep(3) # 等待BECivil界面 w3 = WinControl(self.BECivilWin) w3.wait(60) if w3.exists(): #w3.wait(60) sleep(5) w4 = WinControl('启动提示') if w4.exists(): w4.wait(3) w4.controlClick('[CLASS:Button; INSTANCE:1]') print('软件弹出了启动提示') else: pass w3.wait(60) w3.setState(3) sleep(15) else: raise Exception("未识别BECivil打开的窗口") # 检测CO进程并退出 ps = [ ProcessControl(self.COProcess), ProcessControl(self.SuspernsionCtrlProcess) ] for p in ps: if p.exists(): p.wait(6) p.close() else: print("未启动鲁班协作") else: raise Exception("未打开用户登录窗口")
def sand_table_pattern(self): """沙盘模式""" w0 = WinControl(self.BECivilWin) if w0.exists(): w0.wait(3) m1 = MouseControl() m1.click(self.BECivilWin, '', screen_point.沙盘[0], screen_point.沙盘[1]) m1.click(self.BECivilWin, '', screen_point.沙盘模式[0], screen_point.沙盘模式[1]) sleep(2) w1 = WinControl('欢迎使用沙盘功能') if w1.exists(): w1.wait(3) w1.controlClick('[CLASS:Button; INSTANCE:3]') sleep(1) # 设置开工和竣工时间 m1.click('欢迎使用沙盘功能', '', 890, 640) sleep(3) w2 = WinControl('工程时间') if w2.exists(): w2.wait(3) w2.controlClick('[CLASS:Button; INSTANCE:1]') else: raise Exception('未能打开工程时间窗口') sleep(1) w1.controlClick('[CLASS:Button; INSTANCE:3]') sleep(2) # 设置监控服务 m1.click('欢迎使用沙盘功能', '', 830, 640) sleep(3) w3 = WinControl('第三方监控服务设置') if w3.exists(): w3.wait(3) # 选择对接平台 m1.click('第三方监控服务设置', '', 950, 460) m1.click('第三方监控服务设置', '', 950, 480) w3.controlSetText('[CLASS:Edit; INSTANCE:1]', self.messgae1) w3.controlSetText('[CLASS:Edit; INSTANCE:2]', self.messgae2) w3.controlSetText('[CLASS:Edit; INSTANCE:3]', self.messgae3) w3.controlSetText('[CLASS:Edit; INSTANCE:4]', self.messgae4) sleep(1) w3.controlClick('[CLASS:Button; INSTANCE:2]') sleep(12) if w0.exists(): w0.wait(3) t = w0.getPos() if t == (868, 438, 1052, 602): pass else: raise Exception('Something went wrong.') w0.controlClick('[CLASS:Button; INSTANCE:1]') else: raise Exception('未能成功设置监控服务') w1.controlClick('[CLASS:Button; INSTANCE:3]') sleep(1) w1.controlClick('[CLASS:Button; INSTANCE:3]') sleep(1) w1.controlClick('[CLASS:Button; INSTANCE:3]') sleep(1) w1.controlClick('[CLASS:Button; INSTANCE:3]') else: raise Exception('未能打开第三方监控服务设置') else: raise Exception('未能打开欢迎使用沙盘功能') else: raise Exception("未识别BECivil窗口")
def information_management(self): """资料管理""" w0 = WinControl(self.BECivilWin) if w0.exists(): w0.wait(3) m1 = MouseControl() m1.click(self.BECivilWin, '', screen_point.资料[0], screen_point.资料[1]) m1.click(self.BECivilWin, '', screen_point.资料管理[0], screen_point.资料管理[1]) w1 = WinControl('资料管理') sleep(3) if w1.exists(): w1.wait(3) w1.setState(3) # 关联 m1.click('资料管理', '', 1695, 160) sleep(1) w2 = WinControl(' 设置资料信息') if w2.exists(): w2.wait(3) w2.controlClick('[CLASS:Button; INSTANCE:6]') m1.click(' 设置资料信息', '', 805, 440) sleep(2) w2.controlClick('[CLASS:Button; INSTANCE:1]') else: raise Exception('未打开设置资料信息窗口') sleep(2) w1.setState(3) # 反查 m1.click('资料管理', '', 1785, 160) sleep(1) if w0.exists(): w0.wait(3) t1 = w0.getPos() if t1 == (0, 0, 1920, 1040): pass else: raise Exception('Something went wrong.') sleep(2) # 退出反查 m1.click(self.BECivilWin, '', 1100, 490, button='right') sleep(0.5) m1.click(self.BECivilWin, '', 1170, 505) sleep(2) if w1.exists(): w1.wait(3) w1.setState(3) else: raise Exception('退出反查失败') else: raise Exception('反查失败') sleep(2) # 下载 m1.click('资料管理', '', 1835, 160) sleep(2) w3 = WinControl('另存为') if w3.exists(): w3.wait(3) m1.click('另存为', '', 1030, 45) w3.controlSetText('[CLASS:Edit; INSTANCE:2]', self.downloadaddress) sleep(1) w3.controlClick('[CLASS:Button; INSTANCE:1]') sleep(1) w4 = WinControl('确认另存为') if w4.exists(): w4.wait(3) w4.controlClick('[CLASS:Button; INSTANCE:1]') else: pass else: raise Exception('未打开另存为窗口') # 勾选上传资料 m1.click('资料管理', '', 425, 160) sleep(1) # 关联 w1.controlClick('[CLASS:Button; INSTANCE:6]') sleep(1) if w2.exists(): w2.wait(3) w2.controlClick('[CLASS:Button; INSTANCE:3]') sleep(2) w2.controlClick('[CLASS:Button; INSTANCE:1]') else: raise Exception('未打开设置资料信息窗口') sleep(3) w1.setState(3) # 勾选上传资料 m1.click('资料管理', '', 425, 160) # 打印 w1.controlClick('[CLASS:Button; INSTANCE:7]') sleep(1) w5 = WinControl('打印') if w5.exists(): w5.wait(3) w5.controlClick('[CLASS:Button; INSTANCE:14]') else: raise Exception('未打开打印窗口') sleep(3) w1.setState(3) # 删除 w1.controlClick('[CLASS:Button; INSTANCE:8]') sleep(2) if w0.exists(): w0.wait(3) t2 = w0.getPos() if t2 == (844, 438, 1076, 602): pass else: raise Exception('Something went wrong.') w0.controlClick('[CLASS:Button; INSTANCE:1]') else: raise Exception('删除未成功') sleep(3) w1.setState(3) # 关闭资料管理窗口 m1.click('资料管理', '', 1905, 10) else: raise Exception('未打开资料管理窗口') else: raise Exception('未识别BECivil窗口')
def viewing_reports(self): """查看报表""" w0 = WinControl(self.BECivilWin) if w0.exists(): w0.wait(3) m1 = MouseControl() m1.click(self.BECivilWin, '', screen_point.数据[0], screen_point.数据[1]) m1.click(self.BECivilWin, '', screen_point.查看报表[0], screen_point.查看报表[1]) sleep(2) w1 = WinControl('报表(Civil)') if w1.exists(): w1.wait(3) # 条件统计 m1.click('报表(Civil)', '', 40, 70) sleep(1) w2 = WinControl('条件统计') if w2.exists(): w2.wait(3) # 勾选全部楼层 m1.click('条件统计', '', 740, 410) sleep(1) # 勾选全部构件 m1.click('条件统计', '', 975, 410) sleep(1) w2.controlClick("[CLASS:Button; INSTANCE:1]") else: raise Exception("未打开条件统计窗口") # 选中构件 m1.click('报表(Civil)', '', 860, 260, clicks=2) # 点击反查 m1.click('报表(Civil)', '', 100, 70) sleep(2) w3 = WinControl('反查结果') if w3.exists(): w3.wait(3) sleep(2) w3.controlClick('[CLASS:Button; INSTANCE:3]') else: raise Exception("未打开反查结果窗口") sleep(1) # 打印预览 m1.click('报表(Civil)', '', 290, 70) sleep(2) w4 = WinControl('打印预览 - 你的报表标题') if w4.exists(): w4.wait(3) # 退出打印预览 m1.click('打印预览 - 你的报表标题', '', 1890, 10) else: raise Exception('未打开打印预览窗口') sleep(2) # 导出Excel m1.click('报表(Civil)', '', 360, 70) sleep(2) w5 = WinControl('另存为') if w5.exists(): w5.wait(3) w5.setState(3) m1.click('另存为', '', 860, 45) w5.controlSetText('[CLASS:Edit; INSTANCE:2]', self.downloadaddress) autoit.send("{ENTER}") sleep(2) w5.controlClick('[CLASS:Button; INSTANCE:1]') sleep(2) w6 = WinControl('确认另存为') if w6.exists(): w6.wait(3) w6.controlClick('[CLASS:Button; INSTANCE:1]') else: pass else: raise Exception("未打开另存为窗口") sleep(15) w7 = WinControl('测试脚本用安装工程.YS_清单定额汇总表.xls [兼容模式] - Excel') if w7.exists(): w7.wait(3) w7.setState(3) sleep(3) # 关闭自动打开的Excel m1.click('测试脚本用安装工程.YS_清单定额汇总表.xls [兼容模式] - Excel', '', 1905, 12) else: raise Exception("未打开Excel") sleep(2) # 导出PDF m1.click('报表(Civil)', '', 435, 70) sleep(2) w8 = WinControl('另存为') if w8.exists(): w8.wait(3) w8.setState(3) m1.click('另存为', '', 860, 45) w8.controlSetText('[CLASS:Edit; INSTANCE:2]', self.downloadaddress) autoit.send("{ENTER}") sleep(2) w5.controlClick('[CLASS:Button; INSTANCE:1]') sleep(2) w9 = WinControl('确认另存为') if w9.exists(): w9.wait(3) w9.controlClick('[CLASS:Button; INSTANCE:1]') else: pass else: raise Exception("未打开另存为窗口") sleep(7) w10 = WinControl( '你的报表标题 - 测试脚本用安装工程.YS_清单定额汇总表.pdf - Mozilla Firefox') if w10.exists(): w10.wait(3) w10.setState(3) sleep(3) # 关闭自动打开的Excel m1.click( '你的报表标题 - 测试脚本用安装工程.YS_清单定额汇总表.pdf - Mozilla Firefox', '', 1893, 7) sleep(2) w11 = WinControl("确认关闭") if w11.exists(): w11.wait(3) autoit.send("{ENTER}") else: raise Exception("未打开PDF") sleep(1) # 报表管理 m1.click('报表(Civil)', '', 500, 70) sleep(2) w12 = WinControl('报表管理') if w12.exists(): w12.wait(3) w12.controlClick('[CLASS:Button; INSTANCE:4]') sleep(2) w13 = WinControl('打开') if w13.exists(): w13.wait(3) m1.click('打开', '', 1030, 45) w13.controlSetText('[CLASS:Edit; INSTANCE:2]', self.uploadaddress) sleep(1) autoit.send("{ENTER}") w13.controlSetText('[CLASS:Edit; INSTANCE:1]', '测试脚本用上传报表.xlsx') sleep(1) w13.controlClick("[CLASS:Button; INSTANCE:1]") sleep(5) w14 = WinControl('上传报表') if w14.exists(): w14.wait(3) w14.controlClick('[CLASS:Button; INSTANCE:1]') else: raise Exception('未打开上传报表窗口') else: raise Exception("未打开打开窗口") # 关闭报表管理 m1.click('报表管理', '', 1314, 243) sleep(2) else: raise Exception('未打开报表管理窗口') # 关闭报表窗口 m1.click('报表(Civil)', '', 1895, 5) else: raise Exception('未打开报表(Civil)窗口') else: raise Exception('未识别BECivil窗口')
def measure_point_management(self): """测点管理""" w0 = WinControl(self.BECivilWin) if w0.exists(): w0.wait(3) m1 = MouseControl() m1.click(self.BECivilWin, '', screen_point.任务[0], screen_point.任务[1]) m1.click(self.BECivilWin, '', screen_point.测点管理[0], screen_point.测点管理[1]) sleep(1) # 无法识别测点列表窗口 # 添加 m1.click(self.BECivilWin, '', 1185, 270) sleep(1) w1 = WinControl('新建测点') if w1.exists(): w1.wait(3) # 选择深层位移 m1.click('新建测点', '', 980, 445) sleep(1) m1.click('新建测点', '', 980, 515) sleep(1) # 测点名称 m1.click('新建测点', '', 980, 480) autoit.send('测点名称123') sleep(1) # 选择位置 m1.click('新建测点', '', 850, 520) sleep(1) m1.click(self.BECivilWin, '', 750, 620) m1.click(self.BECivilWin, '', 750, 620, button='right') m1.click(self.BECivilWin, '', 710, 635) sleep(1) w1.controlClick("[CLASS:Button; INSTANCE:1]") else: raise Exception('未打开新建测点窗口') sleep(2) # 数据读取 m1.click(self.BECivilWin, '', 1380, 270) sleep(1) w2 = WinControl("打开") if w2.exists(): w2.wait(3) m1.click('打开', '', 940, 45) w2.controlSetText('[CLASS:Edit; INSTANCE:2]', self.uploadaddress) autoit.send("{ENTER}") sleep(1) w2.controlSetText('[CLASS:Edit; INSTANCE:1]', '测点数据读取模板.xlsx') w2.controlClick('[CLASS:Button; INSTANCE:1]') sleep(2) w3 = WinControl('数据读取设置') if w3.exists(): w3.wait(3) # 数据表名 m1.click('数据读取设置', '', 980, 435) sleep(1) # 深层位移 m1.click('数据读取设置', '', 980, 455) sleep(1) # 数据类型 m1.click('数据读取设置', '', 980, 470) sleep(1) # 深层位移 m1.click('数据读取设置', '', 980, 597) sleep(1) w3.controlClick('[CLASS:Button; INSTANCE:1]') else: raise Exception('未打开数据读取设置窗口') else: raise Exception('未识别打开窗口') sleep(1) # 关闭测点管理 m1.click(self.BECivilWin, '', screen_point.测点管理[0], screen_point.测点管理[1]) else: raise Exception("未识别市政窗口")
def upload_information(self): """上传资料""" w0 = WinControl(self.BECivilWin) if w0.exists(): w0.wait(3) m1 = MouseControl() m1.click(self.BECivilWin, '', screen_point.资料[0], screen_point.资料[1]) m1.click(self.BECivilWin, '', screen_point.上传资料[0], screen_point.上传资料[1]) w1 = WinControl('上传资料') sleep(3) if w1.exists(): w1.wait(3) w1.setState(3) ''' # 因删除上传资料的文件夹在BECivil上是有bug的,服务器说要等到下个版本发版的时候再改,所以新增删除文件夹这一块暂时注掉 m1.click('上传资料', '', 40, 90, button='right') sleep(1) m1.click('上传资料', '', 100, 105) m1.click('上传资料', '', 40, 90)# 点击全部 sleep(1) w1.controlClick('[CLASS:Button; INSTANCE:9]') sleep(1) w2 = WinControl('文件夹新建') if w2.exists(): w2.wait(3) w2.controlSetText('[CLASS:Edit; INSTANCE:1]', '测试脚本用上传文件夹') sleep(1) w2.controlClick('[CLASS:Button; INSTANCE:1]') else: raise Exception("未打开新建文件夹窗口") ''' # 点击新建文件夹 m1.click('上传资料', '', 60, 110) sleep(1) w1.controlClick('[CLASS:Button; INSTANCE:11]') sleep(3) w3 = WinControl('授权人员') if w3.exists(): w3.wait(3) w3.controlSetText('[CLASS:Edit; INSTANCE:1]', 'xushenwei') w3.controlClick('[CLASS:Button; INSTANCE:5]') sleep(1) # 勾选授权人员 m1.click('授权人员', '', 870, 420) w3.controlClick('[CLASS:Button; INSTANCE:2]') else: raise Exception("未打开授权人员窗口") sleep(1) # 本地资料 w1.controlClick('[CLASS:Button; INSTANCE:14]') sleep(2) w4 = WinControl('打开') if w4.exists(): w4.wait(3) w4.setState(3) m1.click('打开', '', 970, 50) w4.controlSetText('[CLASS:Edit; INSTANCE:2]', self.uploadaddress) autoit.send("{ENTER}") w4.controlSetText('[CLASS:Edit; INSTANCE:1]', r'上传测试资料.txt') sleep(2) w4.controlClick('[CLASS:Button; INSTANCE:1]') else: raise Exception("上传资料未成功") sleep(4) # 关联 m1.click('上传资料', '', 1800, 110) sleep(2) w5 = WinControl(' 设置资料信息') if w5.exists(): w5.wait(3) # 点击标签 m1.click(' 设置资料信息', '', 840, 260) w5.controlSetText('[CLASS:ListBox; INSTANCE:1]', '测试脚本用标签') w5.controlClick('[CLASS:Button; INSTANCE:14]') m1.click(' 设置资料信息', '', 790, 335) sleep(1) w5.controlClick('[CLASS:Button; INSTANCE:1]') else: raise Exception("未打开关联资料窗口") # 查看 m1.click('上传资料', '', 1840, 110) sleep(2) w6 = WinControl('上传测试资料.txt - 记事本') if w6.exists(): w6.wait(3) w6.setState(3) sleep(1) m1.click('上传测试资料.txt - 记事本', '', 1890, 10) else: raise Exception('未打开上传的资料') ''' m1.click('上传资料', '', 1880, 110) sleep(1) if w0.exists(): w0.wait(3) w0.controlClick('[CLASS:Button; INSTANCE:1]') else: raise Exception("未成功删除上传资料") ''' # 关闭上传资料窗口 m1.click('上传资料', '', 1905, 10) else: raise Exception("未打开上传资料窗口") else: raise Exception('未识别BECivil窗口')
def status_manage(self): """状态管理""" w0 = WinControl(self.BECivilWin) if w0.exists(): w0.wait(3) m1 = MouseControl() m1.click(self.BECivilWin, '', screen_point.沙盘[0], screen_point.沙盘[1]) m1.click(self.BECivilWin, '', screen_point.状态管理[0], screen_point.状态管理[1]) sleep(3) w1 = WinControl('状态管理') if w1.exists(): w1.wait(3) # 添加新节点 m1.click('状态管理', '', 750, 300) sleep(1) # 添加三个新状态 m1.click('状态管理', '', 810, 300, clicks=3) # 使最后一个状态更名为重命名状态1 autoit.send("重命名状态1") autoit.send("{ENTER}") sleep(1) # 选中新状态 m1.click('状态管理', '', 830, 730) sleep(1) # 复制状态 m1.click('状态管理', '', 830, 730, button='right') m1.click('状态管理', '', 890, 785) m1.click('状态管理', '', 830, 730, button='right') m1.click('状态管理', '', 890, 810) sleep(1) # 重命名 m1.click('状态管理', '', 910, 300) autoit.send("重命名状态2") autoit.send("{ENTER}") sleep(1) # 上移 m1.click('状态管理', '', 960, 300) sleep(1) # 下移 m1.click('状态管理', '', 1000, 300) sleep(1) # 升级 m1.click('状态管理', '', 1045, 300) sleep(1) # 降级 m1.click('状态管理', '', 1090, 300) sleep(1) # 删除 m1.click('状态管理', '', 860, 300) sleep(1) if w0.exists(): w0.wait(3) t1 = w0.getPos() if t1 == (791, 411, 1127, 628): pass else: raise Exception('Something went wrong.') w0.controlClick("[CLASS:Button; INSTANCE:1]") else: raise Exception("未弹出确认删除窗口") # 上传 m1.click('状态管理', '', 1180, 300) sleep(2) w2 = WinControl('另存为EDS模板') if w2.exists(): w2.wait() w2.controlSetText('[CLASS:Edit; INSTANCE:1]', '测试脚本用新增模板') w2.controlClick('[CLASS:Button; INSTANCE:2]') sleep(2) if w0.exists(): w0.wait(3) t2 = w0.getPos() if t2 == (835, 436, 1084, 602): pass else: raise Exception('Something went wrong.') w0.controlClick("[CLASS:Button; INSTANCE:1]") else: pass else: raise Exception("未打开另存模板窗口") sleep(2) # 下载 m1.click('状态管理', '', 1135, 300) sleep(5) w3 = WinControl('选择EDS模板') if w3.exists(): w3.wait(3) w3.controlClick("[CLASS:Button; INSTANCE:2]") else: raise Exception("未打开选择EDS模板窗口") sleep(2) w1.controlClick("[CLASS:Button; INSTANCE:1]") else: raise Exception("未打开状态管理窗口") else: raise Exception("未识别BECivil窗口")