多设备兼容脚本,轻松拿捏
一、前言
二、如何查询所连接的设备信息
2.1 简单分辨iOS设备与Android设备
device().__class__.__name__.lower()
2.2 分辨不同的Android设备厂商以及设备型号
adb shell
,进入linux命令行,再输入下方命令,可以看到有我们所需要的设备信息。 adb shell getprop | grep product
# 获取设备品牌名
adb shell getprop ro.product.brand
# 获取设备型号
adb shell getprop ro.product.model
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("没有该型号适用的方法")
五、小结
本文分享自微信公众号 - AirtestProject(AirtestProject)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
又小又快:基于 Skia 的开源截图程序 ScreenCapture 发布 2.1.8
ScreenCapture特性 跨屏幕截图、高分屏支持、窗口区域高亮。 取景框,支持快捷键复制 RGB 颜色 (Ctrl+R)和 HEX 颜色(Ctrl+H)。 绘制填充、非填充的椭圆、正圆(Shift按下)、矩形、正方形(Shift按下)、箭头、排序标号(拖拽调整箭头方向和大小,滚轮调整大小)。 画曲线、直线(Shift按下)、半透明直线、马赛克、橡皮擦、文本(滚轮调整文字大小)。 可以随时修改已绘制的元素(鼠标移到元素上等待1.6秒)。 上一步(Ctrl+Z)、下一步(Ctrl+Y)。 在新窗口中钉住截图区域(Ctrl+P),鼠标滚轮改变钉图窗口大小。 保存成文件(Ctrl+S)、保存到剪切板(Ctrl+C)。 多语言支持(ScreenCapture.exe --lang:en_us)。 直接把剪切板图片钉在桌面上(ScreenCapture.exe --pin:clipboard)。 非常快、低内存消耗、低 CPU 使用率。 基于Skia,非常小、仅一个可执行文件(3.8M),无需安装,不依赖任何动态链接库。 可以非常容易的集成到其他应用中。 更新内容 修复了一些BUG; 增加了...
- 下一篇
代码高手的过节秘籍:CodeArt Snap帮写代码,灵感弹指间实现
本文分享自华为云社区《【端午特辑】代码高手的过节秘籍:CodeArt Snap帮写代码,灵感弹指间实现》,作者: 华为云社区精选。 端午将至,粽叶飘香,你却还在为一行行代码头疼?与bug缠斗不休? 现在,基于盘古大模型技术打造的华为云智能开发助手CodeArts Snap,一键生成高效代码,精准解决技术难题,让你于谈笑间轻松完成应用开发,秒变技术大牛: “30秒写出带有可视化界面的小游戏” “轻点鼠标一键修复报错的代码” “打个响指,创建好单元测试用例” …… 只要开发工具选得好,端午节前下班早,快来免费体验CodeArts Snap,尽情享受美好假期。 代码秒生成,注释秒加上……为你提供“超级码力” 源于华为自身的研发实践,华为云基于大模型技术,学习了1300多万篇经典的技术文档、760亿行精选代码,打造了智能开发助手CodeArts Snap。它基于智能生成和智能问答两大核心场景提供了支持多种主流IDE的插件,覆盖代码生成、研发知识问答、单元测试用例生成、代码解释、代码注释、代码翻译、代码调试等研发场景。 1、代码生成,编码效率up 一句话实现函数级的多行代码生成,开发者仅需在定义...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8编译安装MySQL8.0.19
- CentOS7,CentOS8安装Elasticsearch6.8.6