# -*- coding=utf-8 -*-
import os,re
from appium import webdriver
def get_Driver():
if not driver:
# apk包的位置,获取包package,activity
appLocation = "packpath.apk"
# 获取设备名
readDeviceId = list(os.popen('adb devices').readlines())
deviceId = re.findall(r"^\w*",readDeviceId[1])
deviceId = (" ".join(deviceId))
# 获取设备版本号
deviceAndroidVersion = list(os.popen('adb shell getprop ro.build.version.release').readlines())
#deviceVersion = re.findall(r'^\w*.[0-10.[0-10]',deviceAndroidVersion[0])
deviceVersion = (" ".join(deviceAndroidVersion)).strip("\n").split(" ")
# 获取包名第一种方法
packurl ='aapt dump badging '+ appLocation # 这里使用的是adb命令,记得加空格,否则像我一样躺坑
res = os.popen(packurl,'r')._stream
appPackageAdb=res.buffer.readline().decode(encoding='utf-8').split()
appPackage = re.findall(r'com\w*.*.mm',appPackageAdb[1])[0]
#获取包名第二种方法
# appPackageAdb = os.popen('aapt dump badging ' + appLocation)._stream
# appPackageAdb =appPackageAdb.buffer.readline().decode(encoding='utf-8')
# appPackage = re.findall(r'\'com\w*.*?\'', appPackageAdb)
# appPackage = (" ".join(appPackage))
#appium服务
server = 'http://localhost:4723/wd/hub'
# 启动app
desired_caps = {
"platformName": "Android",
"platformVersion": deviceVersion,
"deviceName": deviceId,
"appPackage": appPackage,
"appActivity": appPackage + (".xxx.com.xxx"), #包的启动路径名称
"appWaitPackage": appPackage,
"noReset": True,
"fullReset": False,
}
driver = webdriver.Remote(server,desired_caps)
return driver
注:
此文存在参考网上资料