為保證自動(dòng)化架構(gòu)下代碼生產(chǎn)和維護(hù)的低成本逼侦,本著最大化封裝的目標(biāo)構(gòu)造代碼匿辩。
以下是對外接手機(jī)識別和啟動(dòng)的基本操作方法。
import uiautomator2
import os
import time
import re
import toolkit.File
def startApp(deviceId, appName, appActivity):
#返回啟動(dòng)APP后的設(shè)備對象
# deviceId/設(shè)備ID: str '69DDU16528010559'
# appName/app名: str 'cn.appname.android.driverclient.debug'
# appActivity/app加載項(xiàng): 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():
#返回當(dāng)前連接設(shè)備DEVICEIS列表
adbLocation = toolkit.File.getAdbPath()
str_init = ' '
all_info = os.popen(adbLocation + ' devices').readlines()
# print('adb devices 輸出的內(nèi)容是:', 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('所有設(shè)備名稱:', devices_name)
return devicesId
def getDeviceId():
#返回當(dāng)前連接設(shè)備DEVICEIS列表中第一個(gè)值
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]