UI自动化之获取设备号及package

本文探讨了UI自动化过程中如何获取设备唯一标识(设备号)以及目标应用的package名,这对于实现自动化测试和操控特定应用至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# -*- 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

注:
此文存在参考网上资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值