def wrapped(self, *arg, **kwargs): if self.poco(text="帐号登录").exists(): print(self.device + '在登录方式选择页面_有账号登录元素') self.poco("com.dalan.lgh:id/dalan_agreement_check").click( ) #默认没有勾选需要勾选 self.poco(text="帐号登录").click() sleep(3.0) #判断是否还在当前页面,如果在说明反复勾选了 if self.poco(text="帐号登录").exists(): print(self.device + '需要反向勾选用户协议') self.poco("com.dalan.lgh:id/dalan_agreement_check").click( ) #反向勾选 sleep(1.5) self.poco(text="帐号登录").click() sleep(3.0) if self.poco("com.dalan.lgh:id/dalan_password_input").exists( ): #判断账号框是否存在 for i in range(len(config.devices())): if self.device in config.devices()[i]: print('{}设备对应账号{}'.format(self.device, config.number()[i])) self.poco("com.dalan.lgh:id/dalan_password_input" ).set_text(config.number()[i]) sleep(1.5) self.poco(text="密码").set_text('123456') sleep(1.5) self.poco(text="进入游戏").click() sleep(4.5) return func(self) #装饰完成,调用函数
def hmzc_deng_lu_b5940085(self): if self.poco(text="帐号登录").exists(): print('{}__欢迎进入登录选择方式页面'.format(self.device)) self.poco( "com.dalan.lgh:id/dalan_agreement_check").click() #默认没有勾选需要勾选 sleep(1.5) self.poco(text="帐号登录").click() sleep(3) if self.poco(text="帐号登录").exists(): print('{}_需要反向勾选协议'.format(self.device)) sleep(1.5) self.poco("com.dalan.lgh:id/dalan_agreement_check").click( ) #默认没有勾选需要勾选 sleep(1.5) self.poco(text="帐号登录").click() sleep(3) #判断并输入帐号 if self.poco(textMatches='^忘记密码.*$').exists(): for i in range(len(config.devices())): #迭代设备个数 if self.device in config.devices()[i]: print('已在登录_在输入账号密码页面_{}设备对应账号{}'.format( self.device, config.number()[i])) self.poco( 'com.dalan.lgh:id/dalan_password_input').set_text( config.number()[i]) self.poco('com.dalan.lgh:id/dalan_msg_input').set_text( '123456') self.poco(text="进入游戏").click() sleep(5.0) sleep(2.0) if exists( Template(r"hmzc_公告_mi9.png", record_pos=(0.001, 0.532), resolution=(1080, 2340))): print('{}游戏前_登录页有公告'.format(self.device)) touch( Template(r"hmzc_公告_mi9.png", record_pos=(0.001, 0.532), resolution=(1080, 2340))) sleep(2.5) if exists( Template(r"hmzc_开始游戏_mi9.png", record_pos=(-0.002, 0.706), resolution=(1080, 2340))): touch( Template(r"hmzc_开始游戏_mi9.png", record_pos=(-0.002, 0.706), resolution=(1080, 2340))) sleep(3) if exists( Template(r"hmzc_创角_mi9.png", record_pos=(0.001, 0.802), resolution=(1080, 2340))): print('{}__已在创角页面_需要创角'.format(self.device)) touch( Template(r"hmzc_创角_mi9.png", record_pos=(0.001, 0.802), resolution=(1080, 2340))) sleep(4) stop_app(self.name) #杀掉进程可跳过新手 sleep(2) start_app(self.name, activity=None) sleep(15) #不走创角流程 elif wait(Template(r"hmzc_游戏内断言.png", record_pos=(0.426, -0.846), resolution=(720, 1280)), timeout=20): print('{}__登录游戏成功'.format(self.device)) img = Screencap.GetScreen(time.time(), self.device, "") return True, '登录游戏成功', img[img.find(r'superdalan.com//') + 16:][:-4] #创角后的操作 if exists( Template(r"hmzc_公告_mi9.png", record_pos=(0.001, 0.532), resolution=(1080, 2340))): print('{}_再次启动跳新手--登录页有公告'.format(self.device)) touch( Template(r"hmzc_公告_mi9.png", record_pos=(0.001, 0.532), resolution=(1080, 2340))) sleep(2.5) if exists( Template(r"hmzc_开始游戏_mi9.png", record_pos=(-0.002, 0.706), resolution=(1080, 2340))): touch( Template(r"hmzc_开始游戏_mi9.png", record_pos=(-0.002, 0.706), resolution=(1080, 2340))) if wait(Template(r"hmzc_游戏内断言.png", record_pos=(0.426, -0.846), resolution=(720, 1280)), timeout=25): print('{}__登录游戏成功'.format(self.device)) img = Screencap.GetScreen(time.time(), self.device, "") return True, '登录游戏成功', img[img.find(r'superdalan.com//') + 16:][:-4] else: print('{}__找不到游戏内元素_未能成功进入游戏'.format(self.device)) img = Screencap.GetScreen(time.time(), self.device, "") return False, '找不到游戏内元素_未能成功进入游戏', img[img.find(r'superdalan.com//' ) + 16:][:-4]
def mxd_deng_lu(device, name): #冒险岛 '''登录游戏处理操作''' connect_device("Android:///" + device) auto_setup(__file__) poco = AndroidUiautomationPoco() sleep(3.0) try: if poco(text="同意并进入游戏").exists(): #首次进入游戏 print('{}欢迎进入登录页'.format(device)) sleep(2.0) poco(text="同意并进入游戏").click() sleep(6.0) #弹窗快速注册页面 if poco(textMatches='^我有账号.*$').exists(): poco(textMatches='^我有账号.*$').click() sleep(2.0) if poco(textMatches='^找回密码.*$').exists(): for i in range(len(config.devices())): # if device in config.devices()[i]: print('已在登录_在输入账号密码页面_{}设备对应账号{}'.format( device, config.number()[i])) poco('com.xy.qjsg:id/xy_etx_account').set_text( config.number()[i]) poco('com.xy.qjsg:id/xy_etx_pwd').set_text('123456') poco(text="进入游戏").click() sleep(6.0) if exists( Template(r"mxd_公告.png", record_pos=(-0.004, -0.176), resolution=(1920, 1080))): print('{}游戏前_登录页有公告'.format(device)) poco().click((0.484, 0.824)) #关闭公告 sleep(4.0) elif exists( Template(r"mxd_公告.png", record_pos=(-0.004, -0.176), resolution=(1920, 1080))): print('{}外部-游戏前_登录页有公告'.format(device)) poco().click((0.484, 0.824)) #关闭公告 sleep(3.0) if exists( Template(r"mxd_切换账号.png", record_pos=(0.444, -0.212), resolution=(1280, 720))): touch( Template(r"mxd_切换账号.png", record_pos=(0.444, -0.212), resolution=(1280, 720))) sleep(3.0) #判断是否在登录_输入账号密码页面 if poco(textMatches='^找回密码.*$').exists(): print('{}外部--已在登录_在输入账号密码页面'.format(device)) for i in range(len(config.devices())): if device in config.devices()[i]: print('{}设备对应账号{}'.format(device, config.number()[i])) poco('com.xy.qjsg:id/xy_etx_account').set_text( config.number()[i]) poco('com.xy.qjsg:id/xy_etx_pwd').set_text('123456') poco(text="进入游戏").click() sleep(6.0) elif poco(text="帐号登录").exists(): #新版sdk print(device + '在登录方式选择页面') poco("com.dalan.lgh:id/dalan_agreement_check").click() #默认没有勾选需要勾选 poco(text="帐号登录").click() sleep(3.0) #判断是否还在当前页面,如果在说明反复勾选了 if poco(text="帐号登录").exists(): print(device + '需要反向勾选用户协议') poco("com.dalan.lgh:id/dalan_agreement_check").click() #反向勾选 sleep(1.0) poco(text="帐号登录").click() sleep(3.0) #即将进入帐号输入页面 if poco(textMatches='^忘记密码.*$').exists(): for i in range(len(config.devices())): # if device in config.devices()[i]: print('已在登录_在输入账号密码页面_{}设备对应账号{}'.format( device, config.number()[i])) poco('com.dalan.lgh:id/dalan_password_input').set_text( config.number()[i]) poco('com.dalan.lgh:id/dalan_msg_input').set_text('123456') poco(text="进入游戏").click() sleep(6.0) if exists( Template(r"mxd_公告.png", record_pos=(-0.004, -0.176), resolution=(1920, 1080))): print('{}游戏前_登录页有公告'.format(device)) poco().click((0.484, 0.824)) #关闭公告 sleep(4.0) else: print('{}找不到_同意并进入游戏,或元素超时'.format(device)) if exists( Template(r"mxd_开始冒险.png", threshold=0.6, record_pos=(0.003, 0.198), resolution=(1920, 1080))): poco().click((0.626, 0.676)) #点击进入选区 sleep(3) poco().click((0.198, 0.220)) #点击我的角色模块 print('{}游戏前_选择角色'.format(device)) sleep(3.0) img_3625 = Template(r"mxd_3625_角色.png", record_pos=(-0.037, -0.091), resolution=(1920, 1080)) img_669 = Template(r"mxd_669_角色.png", record_pos=(-0.041, -0.089), resolution=(1280, 720)) img_list = [img_669, img_3625] for pic in img_list: pos = exists(pic) if pos: print('{}_循环查询角色'.format(device)) touch(pos) break # 只要找到图片列表中的任何一张图片,就执行touch else: pass sleep(4.0) poco().click([0.500, 0.845]) #开始冒险 try: if wait( Template(r"mxd_进入游戏按钮.png", record_pos=(0.334, 0.231), resolution=(1280, 720)), 18): touch( Template(r"mxd_进入游戏按钮.png", record_pos=(0.334, 0.231), resolution=(1280, 720))) try: if wait( Template(r"mxd_游戏内任务.png", record_pos=(0.334, 0.231), resolution=(1280, 720)), 30): print('{}进入游戏_成功'.format(device)) img = Screencap.GetScreen(time.time(), device, "True") return True, '登录成功', img[img.find(r'superdalan.com//' ) + 16:][:-4] except: print('{}进入游戏异常_找不到元素'.format(device)) img = Screencap.GetScreen(time.time(), device, "True") return False, '找不到游戏内元素_未能成功进入游戏', img[ img.find(r'superdalan.com//') + 16:][:-4] except: print('{}在选服后出现异常,可能在维护(-详情看截图)'.format(device)) img = Screencap.GetScreen(time.time(), device, "True") return False, '在选服后出现异常,可能在维护,详情看截图', img[ img.find(r'superdalan.com//') + 16:][:-4] except: print('{}已走异常流程_截图异常页面(原因:主要是因为没有进入指定页面_)'.format(device)) img = Screencap.GetScreen(time.time(), device, "True") return False, '由于网络原因,或手机反应慢到导致元素无法找到', img[img. find(r'superdalan.com//') + 16:][:-4]