예제 #1
0
 def wzjh_open_54a4c6159804(self):
     '''判断游戏是否能够进入到登录页面_红米note4x'''
     print(self.device,self.name)
      #判断是否有权限弹框
     if self.poco(text="允许").exists() or self.poco(text="确认").exists() or self.poco(text="关闭公告").exists():#判断是否有权限弹框
         print('%s启动游戏时_有权限弹框'%self.device)
         for i in range(0,8):#弹框处理
             sleep(3)
             if self.poco(text="允许").exists():
                 self.poco(text="允许").click()
             elif self.poco(text="确认").exists():
                 self.poco(text="确认").click()
             elif self.poco(text="关闭公告").exists():
                 self.poco(text="关闭公告").click()
             else:
                 print("%s已授权_或无需授权=%d"%(self.device,i));break
     try:
         #加载游戏_若包有热更时,有可能超时(初次登录)
         if self.poco(text="选择登录方式").wait(80).exists():
             print('{}--{}打开app成功==到了登录页面'.format(os.getpid(),self.device))
             img=Screencap.GetScreen(time.time(), self.device, "True")
             return True,'同意并进入游戏',img[img.find(r'superdalan.com//')+16:][:-4]
         else:
             print('{}--{}找不到登录元素,或元素超时'.format(os.getpid(),self.device))
             img=Screencap.GetScreen(time.time(), self.device, "True")
             return False,'找不到登录元素_或元素超时',img[img.find(r'superdalan.com//')+16:][:-4]
     except:
         print('%s已走异常流程_截图异常页面(原因:主要是因为没有进入指定页面_)'%self.device)
         img=Screencap.GetScreen(time.time(), self.device, "True")
         return False,'主要是因为没有进入指定页面_',img[img.find(r'superdalan.com//')+16:][:-4]
예제 #2
0
 def mxd_open_54a4c6159804(self):#小米4x
     '''判断游戏是否能够进入到登录页面'''
     try:
         try:
             if wait(Template(r"mxd_热更按钮.png", record_pos=(0.128, 0.146), resolution=(1920, 1080)),12):#判断热更新
                 print('{}_有热更资源'.format(self.device))
                 self.poco().click((0.616,0.745))#点击热更
         except:pass
         if self.poco(text="帐号登录").wait(60).exists():
             print('{}-打开app成功==在选择登录方式页面'.format(self.device))
             img=Screencap.GetScreen(time.time(),self.device, "True")
             return True,'进入游戏',img[img.find(r'superdalan.com//')+16:][:-4]
         elif self.poco(text="同意并进入游戏").exists():
             print('{}打开app成功==同意并进入游戏'.format(self.device))
             img=Screencap.GetScreen(time.time(), self.device, "True")
             return True,'同意并进入游戏',img[img.find(r'superdalan.com//')+16:][:-4]
         #新手机或大蓝缓存被清理
         elif self.poco(text="进入游戏").exists():
              print('{}-打开app成功==进入游戏'.format(self.device))
              img=Screencap.GetScreen(time.time(),self.device, "True")
              return True,'进入游戏',img[img.find(r'superdalan.com//')+16:][:-4]
         else:
             print('{}找不到登录元素,或元素超时'.format(self.device))
             img=Screencap.GetScreen(time.time(), self.device, "True")
             return False,'找不到登录元素_或元素超时',img[img.find(r'superdalan.com//')+16:][:-4]
     except:
         print('{}已走异常流程_截图异常页面(原因:主要是因为没有进入指定页面_)'.format(self.device))
         img=Screencap.GetScreen(time.time(), self.device, "True")
         return False,'主要是因为没有进入指定页面_',img[img.find(r'superdalan.com//')+16:][:-4]
예제 #3
0
 def hmzc_open_b5940085(self):  #小米9
     sleep(8)
     for i in range(0, 5):
         sleep(3)
         if self.poco(text="始终允许").exists():
             self.poco(text="始终允许").click()
         elif self.poco(text="确认").exists():
             self.poco(text="确认").click()
         else:
             print('{}启动游戏时_限弹框_{}'.format(self.device, i))
             break
     sleep(4)
     # if exists(Template(r"hmzc_开始游戏_mi9.png", record_pos=(-0.002, 0.706), resolution=(1080, 2340))):
     #     pass
     #     #touch(Template(r"hmzc_开始游戏_mi9.png", record_pos=(-0.002, 0.706), resolution=(1080, 2340)))
     try:
         #加载游戏_若包有热更时,有可能超时(已登录过大蓝游戏_或有缓存的)
         if self.poco(text="同意并进入游戏") or self.poco(
                 text="帐号登录").wait(70).exists():
             print('{}打开app成功==同意并进入游戏'.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]
     except:
         print('已走异常流程_截图异常页面(原因:主要是因为没有进入指定页面_)')
         img = Screencap.GetScreen(time.time(), self.device, "")
         return False, '主要是因为没有进入指定页面_', img[img.find(r'superdalan.com//') +
                                             16:][:-4]
예제 #4
0
 def hmzc_open_QDY4C17818002168(self):  #华为畅享7
     sleep(10)
     for i in range(0, 5):
         sleep(3)
         if self.poco(text="始终允许").exists():
             self.poco(text="始终允许").click()
         elif self.poco(text="确认").exists():
             self.poco(text="确认").click()
         else:
             print('{}启动游戏时_限弹框_{}'.format(self.device, i))
             break
     try:
         #加载游戏_若包有热更时,有可能超时(已登录过大蓝游戏_或有缓存的)
         if self.poco(text="同意并进入游戏") or self.poco(
                 text="帐号登录").wait(70).exists():
             print('{}打开app成功==同意并进入游戏'.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]
     except:
         print('已走异常流程_截图异常页面(原因:主要是因为没有进入指定页面_)')
         img = Screencap.GetScreen(time.time(), self.device, "")
         return False, '主要是因为没有进入指定页面_', img[img.find(r'superdalan.com//') +
                                             16:][:-4]
예제 #5
0
 def wrapped(self,*arg,**kwargs):
     result=func(self)#调用函数
     if result is None:#正常情况下没有返回值,也就是None
         path=os.path.dirname(__file__)
         #----------------打开文件读取数据-----------------------
         with open(path+'/order_log/'+self.device+'.txt',mode="r",encoding="UTF-8",errors="ignore") as abc:
             fileContent=abc.readlines()
         #---------------筛选mPayInfo  pay日志的内容-------------------------
         for i in  range(len(fileContent)):
             if 'union_order_sn' in fileContent[i]:
                 pattern = re.compile('"union_order_sn":"([0-9]{15,20})')#正则表达式实例
                 result = pattern.findall(fileContent[i])#匹配的字符串
                 order_id=''.join(result)
                 print('%s登录order_id=%s'%(self.device,order_id))
                 break
             else:print('{}日志文件是空的_没有获取到order_id'.format(self.device))
         if len(fileContent) is 0:
             print('{}__日志是空的'.format(self.device))
             img=Screencap.GetScreen(time.time(), self.device, "")
             return False, self.device+'__获取日志为空!',img[img.find(r'superdalan.com//')+16:][:-4]
         #循环5次还找不到元素,就直接返回False
         for i in range(5):
             sleep(4.0)
             if self.poco(text="登录").exists():
                 print('%s当前未登录微信'%self.device)
                 img=Screencap.GetScreen(time.time(), self.device, "")
                 return True,order_id,img[img.find(r'superdalan.com//')+16:][:-4]
             elif self.poco(text="立即支付").exists():
                 img=Screencap.GetScreen(time.time(), self.device, "")
                 return True,order_id,img[img.find(r'superdalan.com//')+16:][:-4]
         else:
             img=Screencap.GetScreen(time.time(), self.device, "")
             return False, self.device+'微信无法调起!,手机反应太慢_超时',img[img.find(r'superdalan.com//')+16:][:-4]
     else:
         return result
예제 #6
0
 def order_weixi_b5940085(self):
     print('{}__在游戏首页'.format(self.device))
     touch((844, 445))  #点击-进入充值入口
     sleep(3.0)
     if exists(
             Template(r"hmzc_60档位.png",
                      record_pos=(-0.312, 0.09),
                      resolution=(1080, 1920))):
         print('{}__已在充值档位页面'.format(self.device))
         #创建线程获取日志
         t = threading.Thread(target=get_order_log.say,
                              args=('eve', self.device))
         t.setDaemon(True)
         t.start()
         touch(
             Template(r"hmzc_60档位.png",
                      record_pos=(-0.312, 0.09),
                      resolution=(1080, 1920)))
         if self.poco(text="微信").wait(8).exists():
             print('{}--{}拉起支付方式弹窗成功'.format(os.getpid(), self.device))
             self.poco(text="微信").click()
             time.sleep(4)
         else:
             print('{}--{}拉起支付方式失败'.format(os.getpid(), self.device))
         t.join()
     else:
         print('{}进入充值档位失败_请看截图'.format(self.device))
         img = Screencap.GetScreen(time.time(), self.device, "")
         return False, self.device + '进入充值档位失败_请看截图', img[
             img.find(r'superdalan.com//') + 16:][:-4]
     print('{}___主线程结束___'.format(self.device))
예제 #7
0
 def place_order_QDY4C17818002168(self):
     '''华为畅享7_调起微信'''
     if exists(Template(r"wzjh首充按钮.png", threshold=0.55,record_pos=(0.333, -0.16), resolution=(1920, 1080))):
         print('{}--{}找到首充按钮'.format(os.getpid(),self.device))
         touch(Template(r"wzjh首充按钮.png", record_pos=(0.333, -0.16), resolution=(1920, 1080)))
         sleep(2.0)
     #有时候可能直接弹出立即领取页面
     if exists(Template(r"wzjh立即领取.png", threshold=0.6, record_pos=(0.054, 0.161), resolution=(1920, 1080))):
         print('{}--{}有立即领取按钮'.format(os.getpid(),self.device))
         touch(Template(r"wzjh立即领取.png", threshold=0.6, record_pos=(0.054, 0.161), resolution=(1920, 1080)))
         sleep(4)#已在充值档位页面
     if exists(Template(r"wzjh_6元档位.png", record_pos=(-0.374, -0.016), resolution=(1920, 1080))):
         print('{}_已在充值档位页面'.format(self.device))
         #创建线程获取日志
         t = threading.Thread(target=get_order_log.say,args=('eve',self.device))
         t.setDaemon(True)
         t.start()
         touch((165,220))#点击档位
         if  self.poco(text="微信").wait(8).exists():
             print('{}--{}拉起支付方式弹窗成功'.format(os.getpid(),self.device))
             self.poco(text="微信").click()
             time.sleep(4)
         else:
             print('{}--{}拉起支付方式失败'.format(os.getpid(),self.device))
         t.join()
     else:
         print('{}在游戏内找不到元素_可能原因:实名制弹窗|游戏副本加载页|游戏不固定元素蒙层|网络异常弹框蒙层_请看截图'.format(self.device))
         img=Screencap.GetScreen(time.time(), self.device, "")
         return False,self.device+'在游戏内找不到元素_可能原因:实名制弹窗|游戏副本加载状态|游戏不固定元素蒙层|网络异常弹框蒙层等',img[img.find(r'superdalan.com//')+16:][:-4]
     print('{}___主线程结束___'.format(self.device))
예제 #8
0
    def order_weixi_54a4c6159804(self):  #小米4x
        try:
            print('{}__在游戏首页'.format(self.device))
            self.poco().click((0.850, 0.105))  #点击-进入充值入口
            sleep(3.0)
            if exists(
                    Template(r"hmzc_60档位.png",
                             record_pos=(-0.312, 0.09),
                             resolution=(1080, 1920))):
                print('{}__已在充值档位页面'.format(self.device))
                #创建线程获取日志
                t = threading.Thread(target=get_order_log.say,
                                     args=('eve', self.device))
                t.setDaemon(True)
                t.start()
                touch(
                    Template(r"hmzc_60档位.png",
                             record_pos=(-0.312, 0.09),
                             resolution=(1080, 1920)))
                if self.poco(text="微信").wait(8).exists():
                    print('{}--{}拉起支付方式弹窗成功'.format(os.getpid(), self.device))
                    self.poco(text="微信").click()
                    time.sleep(4)
                else:
                    print('{}--{}拉起支付方式失败'.format(os.getpid(), self.device))
                t.join()
            else:
                print('{}进入充值档位失败_请看截图'.format(self.device))
                img = Screencap.GetScreen(time.time(), self.device, "")
                return False, self.device + '进入充值档位失败_请看截图', img[
                    img.find(r'superdalan.com//') + 16:][:-4]
            print('{}___主线程结束___'.format(self.device))

        except:
            img = Screencap.GetScreen(time.time(), self.device, "")
            print('{}--{}--已走异常流程_截图异常页面(原因:主要是因为没有进入指定页面_)'.format(
                os.getpid(), device))
            return False, device + '由于网络原因,或手机反应慢到导致元素无法找到_超时', img[
                img.find(r'superdalan.com//') + 16:][:-4]
예제 #9
0
 def mxd_open_R8AYIJWO99999999(self):#小米note3
     '''判断游戏是否能够进入到登录页面'''
     if self.poco(text="始终允许").exists():#华为
         for i in range(0,5):#弹框处理
             sleep(3)
             if self.poco(text="始终允许").exists():
                 self.poco(text="始终允许").click()
             elif self.poco(desc="关闭公告").exists():#小米note3
                 self.poco(desc="关闭公告").click()
             else:
                 print("{}已授权_或无需授权".format(self.device));break
     try:
         try:
             if wait(Template(r"mxd_热更按钮.png", record_pos=(0.128, 0.146), resolution=(1920, 1080)),12):#判断热更新
                 print('{}_有热更资源'.format(self.device))
                 self.poco().click((0.616,0.745))#点击热更
         except:pass
         if self.poco(text="帐号登录").wait(60).exists():
             print('{}-打开app成功==在选择登录方式页面'.format(self.device))
             img=Screencap.GetScreen(time.time(),self.device, "True")
             return True,'进入游戏',img[img.find(r'superdalan.com//')+16:][:-4]
         elif self.poco(text="同意并进入游戏").exists():
             print('{}打开app成功==同意并进入游戏'.format(self.device))
             img=Screencap.GetScreen(time.time(), self.device, "True")
             return True,'同意并进入游戏',img[img.find(r'superdalan.com//')+16:][:-4]
         #新手机或大蓝缓存被清理
         elif self.poco(text="进入游戏").exists():
              print('{}-打开app成功==进入游戏'.format(self.device))
              img=Screencap.GetScreen(time.time(),self.device, "True")
              return True,'进入游戏',img[img.find(r'superdalan.com//')+16:][:-4]
         else:
             print('{}找不到登录元素,或元素超时'.format(self.device))
             img=Screencap.GetScreen(time.time(), self.device, "True")
             return False,'找不到登录元素_或元素超时',img[img.find(r'superdalan.com//')+16:][:-4]
     except:
         print('{}已走异常流程_截图异常页面(原因:主要是因为没有进入指定页面_)'.format(self.device))
         img=Screencap.GetScreen(time.time(), self.device, "True")
         return False,'主要是因为没有进入指定页面_',img[img.find(r'superdalan.com//')+16:][:-4]
예제 #10
0
 def place_order_QDY4C17818002168(self):
     '''华为畅享7_调起微信'''
     touch(Template(r"fzzj_游戏内充值.png", record_pos=(0.288, -0.196), resolution=(1920, 1080)))
     if exists(Template(r"fzzj_充值档位6元.png", record_pos=(-0.32, 0.037), resolution=(1920, 1080))):
         print('{}_已在充值档位页面'.format(self.device))
          #创建线程获取日志
         t = threading.Thread(target=get_order_log.say,args=('eve',self.device))
         t.setDaemon(True)
         t.start()
         touch(Template(r"fzzj_充值档位6元.png", record_pos=(-0.32, 0.037), resolution=(1920, 1080)))
         if  self.poco(text="微信").wait(7).exists():
             print('{}--{}拉起支付方式弹窗成功'.format(os.getpid(),self.device))
             self.poco(text="微信").click()
             time.sleep(5)
         else:
             print('{}--{}拉起支付方式失败'.format(os.getpid(),self.device))
         t.join()
     else:
         print('{}在游戏内找不到元素_可能原因:实名制弹窗|游戏副本加载页|游戏不固定元素蒙层|网络异常弹框蒙层_请看截图'.format(self.device))
         img=Screencap.GetScreen(time.time(), self.device, "")
         return False,self.device+'在游戏内找不到元素_可能原因:实名制弹窗|游戏副本加载状态|游戏不固定元素蒙层|网络异常弹框蒙层等',img[img.find(r'superdalan.com//')+16:][:-4]
     print('{}___主线程结束___'.format(self.device))
예제 #11
0
 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]
예제 #12
0
def xy_deng_lu(name):
    clear_app(name)
    start_app(name)
    sleep(2.0)
    #判断是否有权限弹框
    if poco("com.android.packageinstaller:id/permission_deny_button").exists():
        for i in range(0, 7):  #弹框处理
            if poco("com.android.packageinstaller:id/permission_deny_button"
                    ).exists():
                poco(text="始终允许").click()
            else:
                print("已授权_或无需授权=%d" % i)
                break
    try:
        #已有账号记录
        if poco(text="同意并进入游戏").wait(15).exists():
            poco(text="同意并进入游戏").click()
            print('已进入登录_协议页面')
            sleep(20.0)
        pd_gonggao = baidu_shibie.compressImage('chen.png', 0.42, 0.09, 0.17,
                                                0.05)  #获取公告
        if pd_gonggao == '公告':
            print('有公告')
            poco().click((0.947, 0.101))
            if exists(
                    Template(r"开始游戏.png",
                             record_pos=(0.0, 0.592),
                             resolution=(720, 1280))):
                poco().click((0.502, 0.825))  #开始游戏
                print('点击开始游戏')
                sleep(25.0)
                poco().click((0.500, 0.900))  #选择角色页面_可能不用选择,为了保险还是点下
            if wait(
                    Template(r"游戏内元素.png",
                             record_pos=(-0.408, 0.831),
                             resolution=(720, 1280)), 30):
                print('成功进入游戏')
            else:
                print('进入游戏失败_未找到元素')


#新注册账号_新手机或清缓存会有
        elif poco(text="进入游戏").exists():
            poco(text="进入游戏").click()
            if poco(text="我知道了").wait(10).exists():
                poco(text="我知道了").click()
                print('注册账号成功')
                sleep(10.0)
                poco().click((0.500, 0.900))  #选择角色页面
                sleep(25.0)
                paduan = baidu_shibie.compressImage('chen.png', 0.5, 0.01,
                                                    0.15, 0.03)
            if paduan == 0:
                print('进入游戏成功')
            else:
                print('进入游戏失败_未找到元素')
        chongzhi_q = baidu_shibie.compressImage('chen.png', 0.43, 0.01, 0.21,
                                                0.03)  #充值前获取用户拥有的金额
        print('充值前的金额', chongzhi_q)
        poco().click((0.582, 0.028))  #点击顶部充值
        sleep(3.0)
        chongzhi_y = baidu_shibie.compressImage('chen.png', 0.81, 0.68, 0.13,
                                                0.03)  #获取充值页元素
        if chongzhi_y == '充值6元':
            print('已进入充值档位页面_首次充值')
            sleep(4.0)
            poco().click((0.9, 0.689))  #点击充值6元
        elif baidu_shibie.compressImage('chen.png', 0.60, 0.60, 0.20,
                                        0.10) == '6元':
            print('已进入充值档位页面_非首次充值')
            poco().click((0.696, 0.628))  #点击充值6元
        else:
            print('进入充值页面失败')
        poco(text="微信").click()  #微信支付
        sleep(4.0)
        poco(text="立即支付").click()
        print('微信支付_输入密码页')
        sleep(3.0)
        #输入支付密码
        touch((220.0, 2060.0))  #4
        touch((1202.0, 1844.0))
        touch((720.0, 1850.0))
        touch((222.0, 2268.0))
        touch((752.0, 2435.0))
        touch((777.0, 2048.0))
        sleep(2.0)
        poco(text="完成").click()  #完成后自动跳转到充值档位页面
        sleep(2.5)
        poco().click((0.934, 0.032))  #关闭充值档位_回到首页
        sleep(1.5)
        chongzhi_h = baidu_shibie.compressImage('chen.png', 0.43, 0.01, 0.15,
                                                0.03)  #充值前获取用户拥有的金额
        if int(chongzhi_h) == int(chongzhi_q) + 600:
            print('充值成功')
            return True
        elif int(chongzhi_h) == int(chongzhi_q) + 1200:
            print('首次充值双倍')
            return True
        elif int(chongzhi_h) < int(chongzhi_q) + 600:
            print('充值未到账')
            return False
        else:
            print('充值判断失败')
            return False

    except:
        print('已走异常流程_截图异常页面(原因:主要是因为没有进入指定页面_)')
        Screencap.GetScreen(time.time(), config.devices(),
                            "mxd_deng_lu")  #手动截图
예제 #13
0
def place_order(device):
    '''游戏内操作充值'''
    order_id=None#默认为None
    sleep(3.0)
    try:
        connect_device("Android:///"+device)
        auto_setup(__file__)
        poco=AndroidUiautomationPoco()
        sleep(1.8)
        #先判断是否有商城按钮
        if exists(Template(r"mxd_商城按钮.png", threshold=0.6,record_pos=(0.345, -0.226), resolution=(1280, 720))):
            print('{}--{}找到商城入口按钮'.format(os.getpid(),device))
            touch(Template(r"mxd_商城按钮.png", threshold=0.6,record_pos=(0.345, -0.226), resolution=(1280, 720)))
            sleep(2.0)
            touch(Template(r"mxd_充值按钮.png", record_pos=(0.428, 0.066), resolution=(1280, 720)))
            sleep(2.0)
        #直接通过头像位置进入充值档位
        elif exists(Template(r"mxd_游戏内任务.png",record_pos=(0.334, 0.231), resolution=(1280, 720)),30):
            print('{}--{}没有找到商城-直接通过头像位置进入充值档位'.format(os.getpid(),device))
            poco.click([0.033,0.087])
            sleep(2.0)
            poco.click([0.918,0.038])
            sleep(2.0)
        else:
            print('%s--在游戏内找不到元素_可能原因:实名制弹窗|游戏副本加载页|游戏不固定元素蒙层|网络异常弹框蒙层'%device)
            img=Screencap.GetScreen(time.time(), device, "True")
            return False,device+'在游戏内找不到元素_可能原因:实名制弹窗|游戏副本加载页|游戏不固定元素蒙层|网络异常弹框蒙层',img[img.find(r'superdalan.com//')+16:][:-4]

        #创建线程获取日志
        t = threading.Thread(target=get_order_log.say,args=('eve',device))
        t.setDaemon(True)
        t.start()
        sleep(1.8)
        if exists(Template(r"mxd_6元按钮.png", record_pos=(-0.306, 0.037), resolution=(1280, 720))):
            print('{}--{}进入充值档位页面'.format(os.getpid(),device))
            touch(Template(r"mxd_6元按钮.png", record_pos=(-0.306, 0.037), resolution=(1280, 720)))
            #判断是否弹出支付方式
            if  poco(text="微信").wait(8).exists():
                print('{}--{}拉起支付方式弹窗成功'.format(os.getpid(),device))
                poco(text="微信").click()
                time.sleep(4)
            else:
                print('{}--{}拉起支付方式失败'.format(os.getpid(),device))
            t.join()
        print('{}___主线程结束___'.format(device))
        path=os.path.dirname(__file__)
        #----------------打开文件读取数据-----------------------
        with open(path+'/order_log/'+device+'.txt',mode="r",encoding="UTF-8",errors="ignore") as abc:
            fileContent=abc.readlines()
        #---------------筛选mPayInfo  pay日志的内容-------------------------
        for i in  range(len(fileContent)):
            if 'union_order_sn' in fileContent[i]:
                pattern = re.compile('"union_order_sn":"([0-9]{15,20})')#正则表达式实例
                result = pattern.findall(fileContent[i])#匹配的字符串
                order_id=''.join(result)
                print('%s登录order_id=%s'%(device,order_id))
                break
            else:
                print('{}日志文件是空的_没有获取到order_id'.format(device))
        for i in range(5):
            sleep(4.0)
            if poco(text="登录").exists():
                print('%s当前未登录微信'%device)
                img=Screencap.GetScreen(time.time(), device, "")
                return True,order_id,img[img.find(r'superdalan.com//')+16:][:-4]
            elif poco(text="立即支付").exists():
                img=Screencap.GetScreen(time.time(), device, "")
                return True,order_id,img[img.find(r'superdalan.com//')+16:][:-4]
        else:
            img=Screencap.GetScreen(time.time(), device, "")
            return False, device+'微信无法调起!,手机反应太慢_超时',img[img.find(r'superdalan.com//')+16:][:-4]

    except:
        img=Screencap.GetScreen(time.time(), device, "")
        print('{}--{}--已走异常流程_截图异常页面(原因:主要是因为没有进入指定页面_)'.format(os.getpid(),device))
        return False,device+'由于网络原因,或手机反应慢到导致元素无法找到_超时',img[img.find(r'superdalan.com//')+16:][:-4]
예제 #14
0
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]
예제 #15
0
 def wzjh_deng_lu_54a4c6159804(self):  #小米4x
     #判断是否有权限弹框
     try:
         if exists(
                 Template(r"wzjh公告.png",
                          threshold=0.60,
                          record_pos=(0.003, -0.226),
                          resolution=(1920, 1080))):  #如果有公告就关闭
             touch(
                 Template(r"wzjh关闭公告.png",
                          record_pos=(0.351, -0.226),
                          resolution=(1920, 1080)))
             print(self.device + '游戏前有公告')
             sleep(4)
         if exists(
                 Template(r"wzjh进入游戏.png",
                          record_pos=(-0.01, 0.136),
                          resolution=(1920, 1080))):
             print(self.device + '进入登录页_有进入游戏按钮')
             touch(
                 Template(r"wzjh进入游戏.png",
                          record_pos=(-0.01, 0.136),
                          resolution=(1920, 1080)))
             sleep(5)
             if exists(
                     Template(r"wzjh_创建_2.png",
                              record_pos=(0.362, 0.22),
                              resolution=(1280, 720))) or exists(
                                  Template(r"wzjh创角.png",
                                           record_pos=(0.317, 0.194),
                                           resolution=(1920, 1080))):
                 print(self.device + '进入创角界面')
                 self.poco().click((0.860, 0.885))
                 self.poco().click((0.860, 0.885))  #点击进入游戏
                 sleep(4)
             for i in range(0, 14):
                 print(self.device + '循环判断游戏内元素')
                 sleep(3)
                 if exists(
                         Template(r"wzjh游戏内元素.png",
                                  record_pos=(-0.101, -0.06),
                                  resolution=(1920, 1080))) or exists(
                                      Template(r"wzjh首充按钮.png",
                                               record_pos=(0.331, -0.158),
                                               resolution=(1920, 1080))):
                     print(self.device + '登录游戏成功')
                     img = Screencap.GetScreen(time.time(), self.device,
                                               "True")
                     return True, '登录成功', img[img.find(r'superdalan.com//'
                                                       ) + 16:][:-4]
                 elif i > 12:
                     print(self.device + '进入游戏异常_找不到元素')
                     img = Screencap.GetScreen(time.time(), self.device,
                                               "True")
                     return False, self.device + '找不到游戏内元素_未能成功进入游戏', img[
                         img.find(r'superdalan.com//') + 16:][:-4]
         else:
             print(self.device + '找不到进入游戏按钮(可能账号登录异常)_请看截图')
             img = Screencap.GetScreen(time.time(), self.device, "True")
             return False, self.device + '找不到进入游戏按钮(可能账号登录异常)_请看截图', img[
                 img.find(r'superdalan.com//') + 16:][:-4]
     except:
         print(self.device + '-已走异常流程_截图异常页面___(原因:主要是因为没有进入指定页面_)')
         img = Screencap.GetScreen(time.time(), self.device, "True")
         return False, self.device + '由于网络原因,或手机反应慢到导致元素无法找到', img[
             img.find(r'superdalan.com//') + 16:][:-4]
예제 #16
0
    def fzzj_deng_lu_54a4c6159804(self):  #小米4x
        try:
            sleep(2)
            if exists(
                    Template(r"fzzj_公告.png",
                             record_pos=(-0.004, 0.171),
                             resolution=(1920, 1080))):
                touch(
                    Template(r"fzzj_公告.png",
                             record_pos=(-0.004, 0.171),
                             resolution=(1920, 1080)))
                print(self.device + '游戏前有公告')
                sleep(3)
            if exists(
                    Template(r"fzzj_开始游戏按钮.png",
                             record_pos=(0.002, 0.192),
                             resolution=(1920, 1080))):
                print(self.device + '进入登录页_有进入游戏按钮')
                touch((1000, 713))  #点击进入选服入口
                sleep(4)
                touch((443, 286))  #点击最近登录菜单
                sleep(2)
                if exists(
                        Template(r"fzzj_选服.png",
                                 record_pos=(-0.102, -0.109),
                                 resolution=(1920, 1080))):
                    print(self.device + '已在选服页面')
                    touch(
                        Template(r"fzzj_选服.png",
                                 record_pos=(-0.102, -0.109),
                                 resolution=(1920, 1080)))
                try:
                    touch(
                        wait(Template(r"fzzj_开始游戏按钮.png",
                                      record_pos=(0.002, 0.192),
                                      resolution=(1920, 1080)),
                             timeout=6))  #在6秒内找到并点击
                    if wait(Template(r"fzzj_游戏内充值.png",
                                     record_pos=(0.288, -0.196),
                                     resolution=(1920, 1080)),
                            timeout=25):
                        print(self.device + '游戏内有充值按钮')
                        img = Screencap.GetScreen(time.time(), self.device,
                                                  "True")
                        return True, '登录成功', img[img.find(r'superdalan.com//'
                                                          ) + 16:][:-4]
                except:
                    print(self.device + '进入游戏异常_找不到元素')
                    img = Screencap.GetScreen(time.time(), self.device, "True")
                    return False, self.device + '找不到游戏内元素_未能成功进入游戏', img[
                        img.find(r'superdalan.com//') + 16:][:-4]
            else:
                print(self.device + '找不到进入游戏按钮(可能账号登录异常)_请看截图')
                img = Screencap.GetScreen(time.time(), self.device, "True")
                return False, self.device + '找不到进入游戏按钮(可能账号登录异常)_请看截图', img[
                    img.find(r'superdalan.com//') + 16:][:-4]

        except:
            print(self.device + '-已走异常流程_截图异常页面___(原因:主要是因为没有进入指定页面_)')
            img = Screencap.GetScreen(time.time(), self.device, "True")
            return False, self.device + '由于网络原因,或手机反应慢到导致元素无法找到', img[
                img.find(r'superdalan.com//') + 16:][:-4]