最终效果是每次只需要修改测试的包的路径和包名就可以自动删除旧的安装包,并获得 Android 设备 id 和包名等 Appium 需要的信息。
适用于:Python + Android
使用到了 aapt,该工具在 SDK/tools 目录下,如果你没有设置环境变量,那需要进入该目录下才能运行 aapt 命令,如果设置了环境变量则可以在任何目录下运行 aapt 命令了。配置 aapt 环境变量的方法,请自行百度。
下面上代码:
# -*- coding: utf-8 -*- from appium import webdriver # 使用正则表达式筛选设备 id import re # 使用time.sleep(xx)函数进行等待 import time # 使用 os 模块调用命令 import os # 测试的包的路径和包名 appLocation = " /Users/Downloads/app.apk " # 读取设备 id readDeviceId = list(os.popen('adb devices').readlines()) # 正则表达式匹配出 id 信息 deviceId = re.findall(r'^\w*\b', readDeviceId[1])[0] # 读取设备系统版本号 deviceAndroidVersion = list(os.popen('adb shell getprop ro.build.version.release').readlines()) deviceVersion = re.findall(r'^\w*\b', deviceAndroidVersion[0])[0] # 读取 APK 的 package 信息 appPackageAdb = list(os.popen('aapt dump badging ' + appLocation ).readlines()) appPackage = re.findall(r'\'com\w*.*?\'', appPackageAdb[0])[0] # 删除以前的安装包 os.system('adb uninstall ' + appPackage) desired_caps = { 'platformName': 'Android', 'platformVersion': deviceVersion, 'deviceName': deviceId, 'appPackage': appPackage, 'appWaitPackage': appPackage, 'app': appLocation, 'appActivity': appPackage + ".PageSplash", command_executor = "http://localhost:4723/wd/hub" |
上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。