def poco(config): # poco = AndroidUiautomationPoco(screenshot_each_action=False) readDeviceId = list(os.popen('adb devices').readlines()) deviceId = re.findall(r'(.*)\tdevice', readDeviceId[1]) # if not cli_setup(): # auto_setup(__file__, logdir=True, # devices=["Android:///", ]) if not cli_setup(): # 模拟器 >> 网易mumu模拟器连接cap_method=JAVACAP&&ori_method=ADBORI try: subprocess.Popen("adb connect 127.0.0.1:7555", shell=True).wait(2) except: pass # connect_device( # "Android://127.0.0.1:5037/127.0.0.1:7555?ori_method=ADBORI") connect_device( "Android://127.0.0.1:5037/{device}?ori_method=ADBORI".format(device=''.join(deviceId))) # auto_setup(basedir=__file__, # devices = ["Android://127.0.0.1:5037/127.0.0.1:7555?ori_method=ADBORI"], # logdir=rootPath+'airlog') poco = AndroidUiautomationPoco(force_restart=True) gm.set_bool(poco=poco) # 全局poco yield poco
def logout(self): # 调用公共方法 ba = Base() ba.login() if not cli_setup(): auto_setup(__file__, logdir='./case/logout/log') try: poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False) # script content sleep(2) print("-------------登出流程开始----------------") #點擊我的 poco("android.widget.LinearLayout").offspring("android.widget.FrameLayout").child("android.view.ViewGroup").child("android.view.ViewGroup")[1].offspring("MineHome, tab, 3 of 3").offspring("android.widget.ImageView").click() #點擊設置 poco(text="設置").click() #登出 poco(text="退出登錄").click() poco(text="確定").click() print("登出成功") print("-------------登出流程结束----------------") # 退出app ba.stop_app() except Exception as e: print("-------------异常情况-------------") ba.log_error("登出流程错误: \n %s"%(e)) print(e) # 退出app ba.stop_app()
def begin(group_name, update_frequency): global StatusRun StatusRun = 1 if not cli_setup(): auto_setup( __file__, logdir=True, devices=[ "Android://127.0.0.1:5037/127.0.0.1:7555?cap_method=JAVACAP&&ori_method=ADBORI", ]) poco = AndroidUiautomationPoco() get_into_group = 0 group = poco('com.tencent.mm:id/baj') # group hook in WeChat for each_group in group: if each_group.get_text() == group_name: each_group.click() get_into_group = 1 if not get_into_group: StatusRun = 0 while (True): time.sleep(update_frequency) if is_bao_exist(): status = catch_bao(poco('com.tencent.mm:id/auk')[-1]) if status == 0: print('Fail to get Envelop\n') else: print('\nWin: ' + str(status)) setting.addMoney(status) print('Total Win: ' + str(setting.get_setting()['money']) + '\n') poco('com.tencent.mm:id/m1').click()
def __init__(self): if G.DEVICE == None: if not cli_setup(): conf = MyData.EnvData_dir[ "device"] + "://" + MyData.EnvData_dir[ "ADBip"] + "/" + MyData.EnvData_dir["ADBdevice"] method = MyData.EnvData_dir["method"] if "127" in MyData.EnvData_dir["ADBdevice"]: method = MyData.EnvData_dir["simulator"] auto_setup(__file__, logdir=path_LOG_DIR, devices=[ conf + method, ], project_root=path_BASE_DIR) if MyData.DeviceData_dir["androidpoco"] == None: MyData.DeviceData_dir[ "androidpoco"] = AndroidUiautomationPoco() mylog.info("完成android原生元素定位方法初始化【{}】".format( MyData.DeviceData_dir["androidpoco"])) print("完成android原生元素定位方法初始化【{}】".format( MyData.DeviceData_dir["androidpoco"])) # ADBdevice = MyData.EnvData_dir["ADBdevice"] # print(MyData.mobileconf_dir["Notch_Fit"]) # if ADBdevice in MyData.mobileconf_dir["Notch_Fit"]: # print("报错把刚开始了解") # MyData.DeviceData_dir["androidpoco"].use_render_resolution(True, MyData.mobileconf_dir["Notch_Fit"][ # ADBdevice]) # mylog.info("androidpoco完成【{}】刘海屏特殊渲染处理".format(ADBdevice)) # print("androidpoco完成【{}】刘海屏特殊渲染处理".format(ADBdevice)) print("DEVIEC:", G.DEVICE)
def auto_connect(devices, logdir: object = None) -> object: """ :param devices: :param logdir: :return: """ if not cli_setup(): auto_setup(__file__, logdir=logdir, devices=devices)
def setup(): if not cli_setup(): auto_setup( __file__, logdir=True, devices=[ "Android://127.0.0.1:5037/127.0.0.1:7555?ori_method=ADBORI&&touch_method=ADBTOUCH", ])
def setUpClass(cls) -> None: logger = logging.getLogger("airtest") logger.setLevel(logging.ERROR) if not cli_setup(): Only_setup(__file__, devices=[ "android://127.0.0.1:5037/127.0.0.1:62001?cap_method=JAVACAP&&ori_method=ADBORI&&touch_method=MINITOUCH", ]) cls.poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)
def start_record(): if not cli_setup(): dvi = get_devices() auto_setup(__file__, logdir=False, devices=[ "Android://127.0.0.1:5037/" + dvi[0] + "?cap_method=JAVACAP&&ori_method=ADBORI&&touch_method=ADBTOUCH", ]) touch(Template(r"E:\AirtestIDE_2019-09-11_py3_win64\untitled.air\tpl1601196704168.png", record_pos=(-0.269, -0.053), resolution=(1080, 2248)))
def connectDevice(): """ connect device (夜神模拟器) """ if not cli_setup(): # 如果要换模拟器修改127.0.0.1:62001 到该模拟器指定的地址 auto_setup( __file__, logdir=True, devices=[ "Android://127.0.0.1:5037/127.0.0.1:62001?cap_method=JAVACAP^&^&ori_method=ADBORI", ])
def __init__(self): self.config = DeviceConfig.getDeviceConfig() if not cli_setup(): auto_setup(self.filePath(), logdir=True, devices=[ self.config.DEV, ]) logging.basicConfig( filename="log.txt", filemode='w', level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s') logging.getLogger(self.filePath()) ImageUtil.addLocalImageRoot(os.path.dirname(self.filePath()))
def __init__(self, ): """ :type driver: object """ self.poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False) if not cli_setup(): auto_setup(__file__, logdir=True, devices=[ "Android://127.0.0.1:5037/d604cbf", ]) print("start...")
def __init__(self): super(init_devices, self).__init__() if not cli_setup(): auto_setup( __file__, logdir=True, devices=[ "Android://127.0.0.1:5037/FKC4C16629002059?touch_method=ADBTOUCH", ]) self.poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False) #"mCurrentFocus=Window{5842cb5 u0 com.xiangzi.jukandian/com.xiangzi.jukandian.activity.MainActivity}" self.jukandian_package = "com.xiangzi.jukandian" self.jukandian_activity = "com.xiangzi.jukandian.activity.MainActivity" #"mCurrentFocus=Window{9916f10 u0 com.jm.video/com.jm.video.ui.main.MainActivity}" self.shuabao_package = "com.jm.video" self.shuabao_activity = "com.jm.video.ui.main.MainActivity" tools.start_my_app(self.shuabao_package, self.shuabao_activity)
def setUp(self) -> None: self.poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False) if not cli_setup(): auto_setup(app_path, devices=["Android://127.0.0.1:5037/emulator-5554"], logdir=applog_path) start_app('com.tencent.mtt.x86') ST.SNAPSHOT_QUALITY = 75 # 设置全局的截图压缩精度 if G.DEVICE.display_info['orientation'] in [1, 3]: '''判断当前手机是横屏还是竖屏,并获取当前分辨率,相对坐标=绝对坐标/width or height''' '''touch使用绝对坐标,poco使用相对坐标''' self.height = G.DEVICE.display_info['wigth'] self.width = G.DEVICE.display_info['height'] else: self.height = G.DEVICE.display_info['height'] self.width = G.DEVICE.display_info['width'] self.screen = G.DEVICE.snapshot() #调用举报截图函数
def tst_adb(self): self.refreash_textarea_text("设备开始初始化,请耐心等待!") self.refreash_textarea_text("请勿点击其他按钮,可能会出错,我也懒得改了!") if not cli_setup(): auto_setup(__file__, logdir=None, devices=[ "Android://127.0.0.1:5037/" + self.ser_num + "?touch_method=ADBTOUCH", ]) device_poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False) self.shuabao_run = shuabao.shuabao(device_poco) self.tst_device_run = tst_device.Shell() self.tst_device_run.trigger.connect(self.refreash_textarea_text) self.jukandian_run = jukandian_new.jukandian(device_poco) self.dongfangtoutiao_run = dongfangtoutiao.DongFangTouTiao(device_poco) self.dongfangtoutiao_run.trigger.connect(self.refreash_textarea_text) self.xuexi_run = xuexi.XueXi(device_poco) self.refreash_textarea_text("设备初始化完成,可以开始赚钱了!")
def reset_to_hfs_menu(): if not cli_setup(): auto_setup(__file__, devices=[ "Windows:///?title_re=HFS ~ HTTP*"])
def login(self): #调用公共方法 ba = Base() try: poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False) #安装APP ba.install_app() sleep(10) # 启动APP ba.start_app() if not cli_setup(): auto_setup(__file__, logdir="./case/login/log") sleep(2) print("----------------测试登錄流程開始----------------------") sleep(10) #看到手勢密碼,切換為賬號密碼登錄 poco("android.widget.LinearLayout").offspring( "android.widget.FrameLayout" ).child("android.view.ViewGroup").child("android.view.ViewGroup")[ 0].child("android.view.ViewGroup").child( "android.view.ViewGroup").child( "android.widget.ScrollView").child( "android.view.ViewGroup").child( "android.view.ViewGroup")[0].child( "android.widget.ImageView").click() poco(text="更多").click() poco("android.widget.LinearLayout").offspring( "android.widget.FrameLayout").child("android.view.ViewGroup")[ 1].child("android.view.ViewGroup").child( "android.view.ViewGroup")[1].child( "android.view.ViewGroup").child( "android.view.ViewGroup")[0].click() #輸入密碼 poco(text="請輸入登錄密碼").click() poco("android.widget.LinearLayout").offspring( "android.widget.FrameLayout").child("android.view.ViewGroup")[ 1].child("android.view.ViewGroup").child( "android.view.ViewGroup")[1].child( "android.view.ViewGroup")[2].child( "android.view.ViewGroup")[0].child( "android.view.ViewGroup")[0].child( "android.view.ViewGroup").click() poco("android.widget.LinearLayout").offspring( "android.widget.FrameLayout").child("android.view.ViewGroup")[ 1].child("android.view.ViewGroup").child( "android.view.ViewGroup")[1].child( "android.view.ViewGroup")[2].child( "android.view.ViewGroup")[0].child( "android.view.ViewGroup")[1].child( "android.view.ViewGroup").click() poco("android.widget.LinearLayout").offspring( "android.widget.FrameLayout").child("android.view.ViewGroup")[ 1].child("android.view.ViewGroup").child( "android.view.ViewGroup")[1].child( "android.view.ViewGroup")[2].child( "android.view.ViewGroup")[0].child( "android.view.ViewGroup")[2].child( "android.view.ViewGroup").click() poco("android.widget.LinearLayout").offspring( "android.widget.FrameLayout").child("android.view.ViewGroup")[ 1].child("android.view.ViewGroup").child( "android.view.ViewGroup")[1].child( "android.view.ViewGroup")[2].child( "android.view.ViewGroup")[0].child( "android.view.ViewGroup")[3].child( "android.view.ViewGroup").click() poco("android.widget.LinearLayout").offspring( "android.widget.FrameLayout").child("android.view.ViewGroup")[ 1].child("android.view.ViewGroup").child( "android.view.ViewGroup")[1].child( "android.view.ViewGroup")[2].child( "android.view.ViewGroup")[0].child( "android.view.ViewGroup")[4].child( "android.view.ViewGroup").click() poco("android.widget.LinearLayout").offspring( "android.widget.FrameLayout").child("android.view.ViewGroup")[ 1].child("android.view.ViewGroup").child( "android.view.ViewGroup")[1].child( "android.view.ViewGroup")[2].child( "android.view.ViewGroup")[0].child( "android.view.ViewGroup")[5].child( "android.view.ViewGroup").click() poco("android.widget.LinearLayout").offspring( "android.widget.FrameLayout").child("android.view.ViewGroup")[ 1].child("android.view.ViewGroup").child( "android.view.ViewGroup")[1].child( "android.view.ViewGroup")[2].child( "android.view.ViewGroup")[0].child( "android.view.ViewGroup")[6].child( "android.view.ViewGroup").click() poco("android.widget.LinearLayout").offspring( "android.widget.FrameLayout").child("android.view.ViewGroup")[ 1].child("android.view.ViewGroup").child( "android.view.ViewGroup")[1].child( "android.view.ViewGroup")[2].child( "android.view.ViewGroup")[0].child( "android.view.ViewGroup")[7].child( "android.view.ViewGroup").click() poco("android.widget.LinearLayout").offspring( "android.widget.FrameLayout").child("android.view.ViewGroup")[ 1].child("android.view.ViewGroup").child( "android.view.ViewGroup")[1].child( "android.view.ViewGroup")[2].child( "android.view.ViewGroup")[2].child( "android.view.ViewGroup")[0].child( "android.view.ViewGroup").click() poco(text="確定").click() #登錄 poco(text="登錄").click() sleep(2) #驗證是否登錄成功 #进入账户预览 poco("android.widget.LinearLayout").offspring( "android.widget.FrameLayout").child( "android.view.ViewGroup").child("android.view.ViewGroup")[ 0].child("android.view.ViewGroup").child( "android.view.ViewGroup").child( "android.widget.ScrollView").child( "android.view.ViewGroup").child( "android.view.ViewGroup")[0].click() #查看是否有总资产 assert_exists( Template(r"tpl1575966345628.png", record_pos=(-0.045, -0.744), resolution=(1080, 2244)), "總資產(MOP)") print("登錄成功") print("----------------测试登錄流程結束----------------------") #退出app ba.stop_app() except Exception as e: print("-------------异常情况-------------") ba.log_error("登陆流程错误: \n %s" % (e)) print(e) # 退出app ba.stop_app()
def transfer(self): # 调用公共方法 ba = Base() ba.login() if not cli_setup(): auto_setup(__file__, logdir="./case/p_transfer/log") try: poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False) sleep(2) print("----------------同行轉賬流程開始----------------------") #進入同行轉賬 poco("android.widget.LinearLayout").offspring( "android.widget.FrameLayout" ).child("android.view.ViewGroup").child("android.view.ViewGroup")[ 0].child("android.view.ViewGroup").child( "android.view.ViewGroup").child( "android.widget.ScrollView").child( "android.view.ViewGroup").child( "android.view.ViewGroup")[3].child( "android.view.ViewGroup")[3].child( "android.widget.ImageView").click() sleep(2) #選擇轉出賬戶 poco(text="").click() poco(text="幣種-CNY").click() sleep(5) #轉賬10 poco("android.widget.LinearLayout").offspring( "android.widget.FrameLayout").offspring( "android.widget.ScrollView").child( "android.view.ViewGroup").child( "android.view.ViewGroup")[0].child( "android.view.ViewGroup")[3].child( "android.widget.TextView")[1].click() poco(text="1").click() poco(text="0").click() poco(text="確定").click() poco(text="預覽").click() poco(text="確定").click() #測試點,驗證是否轉賬成功 assert_exists( Template(r"tpl1575891204100.png", record_pos=(0.005, -0.299), resolution=(1080, 1920)), "轉賬成功") print("轉賬流程測試成功") #返回首頁 poco(text="完成").click() print("----------------同行轉賬流程結束----------------------") # 退出app ba.stop_app() except Exception as e: print("-------------异常情况-------------") ba.log_error("同行转账流程错误 \n %s" % (e)) print(e) # 退出app ba.stop_app()
def cardLogin(self): # 调用公共方法 ba = Base() try: poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False) # 安装APP ba.install_app() sleep(10) # 启动APP ba.start_app() if not cli_setup(): auto_setup(__file__, logdir="./case/cardLogin/log") sleep(2) print("----------------测试信用卡证件号登錄流程開始----------------------") sleep(10) # 点击快捷登录 poco("android.widget.LinearLayout").offspring("android.widget.FrameLayout").child( "android.view.ViewGroup").child("android.view.ViewGroup")[1].offspring( "CreditCard, tab, 2 of 3").offspring("android.widget.ImageView").click() poco(text="快捷登錄").click() # 选择证件类型 poco(text="請選擇證件類型").click() swipe(Template(r"tpl1576663317394.png", record_pos=(-0.004, 0.863), resolution=(1080, 2280)), vector=[0.1878, -0.0851]) touch(Template(r"tpl1576663368014.png", record_pos=(0.424, 0.458), resolution=(1080, 2280))) # 输入证件号码 poco(text="請輸入證件號碼").click() poco("android.widget.LinearLayout").offspring("android.widget.FrameLayout").child("android.view.ViewGroup")[ 1].child("android.view.ViewGroup").child("android.view.ViewGroup")[1].child("android.view.ViewGroup")[ 2].child("android.view.ViewGroup")[4].child("android.view.ViewGroup").offspring( "android.widget.ImageView").click() poco("android.widget.LinearLayout").offspring("android.widget.FrameLayout").child("android.view.ViewGroup")[ 1].child("android.view.ViewGroup").child("android.view.ViewGroup")[1].child("android.view.ViewGroup")[ 2].child("android.view.ViewGroup")[2].child("android.view.ViewGroup")[5].child( "android.view.ViewGroup").click() poco("android.widget.LinearLayout").offspring("android.widget.FrameLayout").child("android.view.ViewGroup")[ 1].child("android.view.ViewGroup").child("android.view.ViewGroup")[1].child("android.view.ViewGroup")[ 2].child("android.view.ViewGroup")[0].child("android.view.ViewGroup")[7].child( "android.view.ViewGroup").click() poco("android.widget.LinearLayout").offspring("android.widget.FrameLayout").child("android.view.ViewGroup")[ 1].child("android.view.ViewGroup").child("android.view.ViewGroup")[1].child("android.view.ViewGroup")[ 2].child("android.view.ViewGroup")[0].child("android.view.ViewGroup")[3].child( "android.view.ViewGroup").click() poco("android.widget.LinearLayout").offspring("android.widget.FrameLayout").child("android.view.ViewGroup")[ 1].child("android.view.ViewGroup").child("android.view.ViewGroup")[1].child("android.view.ViewGroup")[ 2].child("android.view.ViewGroup")[0].child("android.view.ViewGroup")[6].child( "android.view.ViewGroup").click() poco("android.widget.LinearLayout").offspring("android.widget.FrameLayout").child("android.view.ViewGroup")[ 1].child("android.view.ViewGroup").child("android.view.ViewGroup")[1].child("android.view.ViewGroup")[ 2].child("android.view.ViewGroup")[0].child("android.view.ViewGroup")[2].child( "android.view.ViewGroup").click() poco("android.widget.LinearLayout").offspring("android.widget.FrameLayout").child("android.view.ViewGroup")[ 1].child("android.view.ViewGroup").child("android.view.ViewGroup")[1].child("android.view.ViewGroup")[ 2].child("android.view.ViewGroup")[0].child("android.view.ViewGroup")[8].child( "android.view.ViewGroup").click() poco("android.widget.LinearLayout").offspring("android.widget.FrameLayout").child("android.view.ViewGroup")[ 1].child("android.view.ViewGroup").child("android.view.ViewGroup")[1].child("android.view.ViewGroup")[ 2].child("android.view.ViewGroup")[0].child("android.view.ViewGroup")[4].child( "android.view.ViewGroup").click() poco("android.widget.LinearLayout").offspring("android.widget.FrameLayout").child("android.view.ViewGroup")[ 1].child("android.view.ViewGroup").child("android.view.ViewGroup")[1].child("android.view.ViewGroup")[ 2].child("android.view.ViewGroup")[3].child("android.view.ViewGroup")[0].child( "android.view.ViewGroup").click() poco(text="確定").click() # 输入查询密码 poco(text="請輸入信用卡查詢密碼").click() poco(text="1").click() poco(text="2").click() poco(text="3").click() poco(text="4").click() poco(text="5").click() poco(text="6").click() # 点击下一步,进入短信接收页面 poco(text="下一步").click() assert_exists(Template(r"tpl1576663089827.png", record_pos=(-0.004, -0.497), resolution=(1080, 2280)), "发送短信成功") print("信用卡发送短信成功") print("----------------测试信用卡证件号流程結束----------------------") # 退出app ba.stop_app() except Exception as e: print("-------------异常情况-------------") ba.log_error("登陆流程错误: \n %s" % (e)) print(e) # 退出app ba.stop_app()
# -*- encoding=utf8 -*- __author__ = "lan" from airtest.core.api import * from airtest.cli.parser import cli_setup if not cli_setup(): auto_setup( __file__, logdir=True, devices=[ "Android://127.0.0.1:5037/127.0.0.1:21503?cap_method=JAVACAP&&ori_method=ADBORI&&touch_method=ADBTOUCH", ]) # script content print("start...") # generate html report # from airtest.report.report import simple_report # simple_report(__file__, logpath="G:/PCR") # 进入登录页 touch(Template(r"图标.png", record_pos=(-0.358, -0.072), resolution=(1440, 2960))) #进入首页 touch( Template(r"CRIWARE.png", record_pos=(-0.34, 0.247), resolution=(1600, 900))) #关闭公告
def cardLogin2(self): # 调用公共方法 ba = Base() try: poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False) # 安装APP ba.install_app() sleep(10) # 启动APP ba.start_app() if not cli_setup(): auto_setup(__file__, logdir="./case/cardLogin/log") sleep(2) print("----------------测试信用卡号登錄流程開始----------------------") sleep(10) # 点击快捷登录 poco("android.widget.LinearLayout").offspring( "android.widget.FrameLayout").child( "android.view.ViewGroup").child("android.view.ViewGroup")[ 1].offspring("CreditCard, tab, 2 of 3").offspring( "android.widget.ImageView").click() poco(text="快捷登錄").click() # 切换到信用卡号登录 poco(text="證件號登錄").click() swipe(Template(r"tpl1576725488897.png", record_pos=(0.006, 0.61), resolution=(1080, 2280)), vector=[0.1507, 0.0809]) touch( Template(r"tpl1576725505334.png", record_pos=(0.424, 0.455), resolution=(1080, 2280))) # 输入卡号 poco(text="請輸入信用卡卡號").click() poco(text="6").click() poco(text="2").click() poco(text="6").click() poco(text="2").click() poco(text="9").click() poco(text="5").click() poco(text="0").click() poco(text="0").click() poco(text="0").click() poco(text="0").click() poco(text="0").click() poco(text="0").click() poco(text="0").click() poco(text="1").click() poco(text="5").click() poco(text="4").click() # 输入查询密码 poco(text="請輸入信用卡查詢密碼").click() poco(text="1").click() poco(text="2").click() poco(text="3").click() poco(text="4").click() poco(text="5").click() poco(text="6").click() # 点击下一步,进入短信接收页面 poco(text="下一步").click() assert_exists( Template(r"tpl1576725845426.png", record_pos=(0.001, -0.502), resolution=(1080, 2280)), "发送短信成功") poco.swipe(point_a, center, direction) print("信用卡发送短信成功") print("----------------测试信用卡号流程結束----------------------") # 退出app ba.stop_app() except Exception as e: print("-------------异常情况-------------") ba.log_error("登陆流程错误: \n %s" % (e)) print(e) # 退出app ba.stop_app()