![](http://www.e-1.cn/wp-content/uploads/2024/06/frc-adfa131450cec9f6f1375cb6ed3f3b6a.png)
一、前言
二、如何查询所连接的设备信息
2.1 简单分辨iOS设备与Android设备
device().__class__.__name__.lower()
2.2 分辨不同的Android设备厂商以及设备型号
adb shell
,进入linux命令行,再输入下方命令,可以看到有我们所需要的设备信息。
adb shell
getprop | grep product
![](http://www.e-1.cn/wp-content/uploads/2024/06/frc-11d4e6893d18286fc00d928c31cff13a.png)
# 获取设备品牌名
adb shell getprop ro.product.brand
# 获取设备型号
adb shell getprop ro.product.model
![](http://www.e-1.cn/wp-content/uploads/2024/06/frc-2a2ff6ce5f5e34f62854a9ad3a24ad3b.png)
python3
的子进程模块
subprocess
的
subprocess.check_output([],text=True)
方法去执行adb命令,其中
text=True
参数表示返回的输出结果是一个字符串,可以直接使用
# 获取设备品牌
brand = subprocess.check_output(['adb', 'shell', 'getprop', 'ro.product.brand'], text=True).strip()
# 获取设备型号
model = subprocess.check_output(['adb', 'shell', 'getprop', 'ro.product.model'], text=True).strip()
三、分辨iOS设备与Android设备案例
# -*- encoding=utf8 -*-
__author__ = "Airtest"
from airtest.core.api import *
auto_setup(__file__)
# 定义Android操作函数
def android_operate():
start_app("com.miui.player") # 打开小米音乐APP
sleep(3.0)
wait(Template(r"tpl1717383819774.png", record_pos=(-0.196, -0.251), resolution=(1080, 2400)))
touch(Template(r"tpl1717383706465.png", record_pos=(-0.194, -0.242), resolution=(1080, 2400)))
sleep(3.0)
print("已打开小米的音乐APP了")
# 定义iOS操作函数
def ios_operate():
from poco.drivers.ios import iosPoco
poco = iosPoco()
poco("播客").click() # 点击播客
sleep(1.0)
poco("女性畅聊健康生活方式 轻松温暖治愈日常烦恼").click() # 点击女性畅聊健康生活方式
sleep(1.0)
print("已打开iphone的播客APP了")
if __name__ == "__main__":
# 获取连接的设备信息
platform = device().__class__.__name__.lower()
if platform == "android":
print("当前设备是Android") # 输出当前设备是Android
sleep(3.0)
android_operate()
elif platform == "ios":
print("当前设备是iOS") # 输出当前设备是iOS
sleep(3.0)
ios_operate()
else:
print("当前设备是未知设备") # 输出当前设备是未知设备
四、Android设备分辨不同厂商型号案例
# -*- encoding=utf8 -*-
__author__ = "Airtest"
from airtest.core.api import *
auto_setup(__file__)
import subprocess
def get_android_device_info():
try:
# 使用 adb shell getprop 获取设备品牌和型号信息
brand = subprocess.check_output(['adb', 'shell', 'getprop', 'ro.product.brand'], text=True).strip() # 获取设备品牌
model = subprocess.check_output(['adb', 'shell', 'getprop', 'ro.product.model'], text=True).strip() # 获取设备型号
return brand, model
except Exception as e:
# 捕获异常
print(f"An error occurred: {e}")
return None, None
def open_vivo_music():
start_app("com.android.bbkmusic") # 打开Vivo音乐APP
sleep(3.0)
wait(Template(r"tpl1717383100103.png", record_pos=(-0.376, -0.051), resolution=(720, 1440)))
touch(Template(r"tpl1717383106988.png", record_pos=(-0.375, -0.044), resolution=(720, 1440)))
sleep(3.0)
print("已打开Vivo的i音乐APP了")
def open_xiaomi_music():
start_app("com.miui.player") # 打开小米音乐APP
sleep(3.0)
wait(Template(r"tpl1717383819774.png", record_pos=(-0.196, -0.251), resolution=(1080, 2400)))
touch(Template(r"tpl1717383706465.png", record_pos=(-0.194, -0.242), resolution=(1080, 2400)))
sleep(3.0)
print("已打开小米的音乐APP了")
def open_huawei_music():
start_app("com.android.mediacenter") # 打开华为音乐APP
sleep(3.0)
wait(Template(r"tpl1717384154362.png", record_pos=(-0.388, 0.02), resolution=(1080, 2340)))
touch(Template(r"tpl1717384181392.png", record_pos=(-0.331, 0.439), resolution=(1080, 2340)))
sleep(3.0)
print("已打开华为的音乐APP了")
def print_device_info(brand, model):
if brand and model:
print(f"当前设备品牌: {brand}") # 打印当前设备品牌
print(f"当前设备型号: {model}") # 打印当前设备型号
sleep(3.0)
else:
print("无法获取设备品牌和型号") # 打印无法获取设备品牌和型号
if __name__ == "__main__":
# 获取 Android 设备品牌和型号
brand, model = get_android_device_info() # 获取设备品牌和型号
print_device_info(brand, model)
# 将打开各类品牌手机APP写成一个字典
music_apps = {
"HUAWEI": open_huawei_music, # 打开华为音乐APP
"vivo": open_vivo_music, # 打开Vivo音乐APP
"Xiaomi": open_xiaomi_music # 打开小米音乐APP
}
#在获取完设备品牌后,在字典内找到对应的方法并执行
music_app = music_apps.get(brand)
if music_app:
music_app()
else:
print("没有该型号适用的方法")
五、小结
![](http://www.e-1.cn/wp-content/uploads/2024/06/frc-1355f3e0b3914adc569d6f1d0eb5311c.png)
![](http://www.e-1.cn/wp-content/uploads/2024/06/frc-1355f3e0b3914adc569d6f1d0eb5311c.png)
![](http://www.e-1.cn/wp-content/uploads/2024/06/frc-1355f3e0b3914adc569d6f1d0eb5311c.png)
)
Poco框架实操:对节点可实施的操作
打开、关闭、切换App以及清除App进程,操作so easy!
本文分享自微信公众号 – AirtestProject(AirtestProject)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。