为保证自动化架构下代码生产和维护的低成本,本着最大化封装的目标构造代码。
以下是对外接手机识别和启动的基本操作方法。
import uiautomator2
import os
import time
import re
import toolkit.File
def startApp(deviceId, appName, appActivity):
#返回启动APP后的设备对象
# deviceId/设备ID: str '69DDU16528010559'
# appName/app名: str 'cn.appname.android.driverclient.debug'
# appActivity/app加载项: str 'cn.appname.android.driverclient.LauncherActivity'
device = uiautomator2.connect_usb(deviceId)
adbLocation = toolkit.File.getAdbPath()
commandStrClean = adbLocation + ' -s ' + deviceId + ' shell ' + 'pm clear ' + appName
commandStrStat = adbLocation + ' -s ' + deviceId + ' shell ' + 'am start -n ' + appName + '/' + appActivity
os.system(commandStrClean)
time.sleep(toolkit.Time.envDly() * 1)
os.system(commandStrStat)
return device
def getDevicesId():
#返回当前连接设备DEVICEIS列表
adbLocation = toolkit.File.getAdbPath()
str_init = ' '
all_info = os.popen(adbLocation + ' devices').readlines()
# print('adb devices 输出的内容是:', all_info)
# print(len(all_info))
for i in range(len(all_info)):
str_init += all_info[i]
# print(str_init)
devicesId = re.findall('\n(.+?)\t', str_init, re.S)
# print('所有设备名称:', devices_name)
return devicesId
def getDeviceId():
#返回当前连接设备DEVICEIS列表中第一个值
adbLocation = toolkit.File.getAdbPath()
str_init = ' '
all_info = os.popen(adbLocation + ' devices').readlines()
for i in range(len(all_info)):
str_init += all_info[i]
deviceId = re.findall('\n(.+?)\t', str_init, re.S)
return deviceId[0]