uiautomator2自动化安卓手机操作

环境安装:通过 pip 安装库本身

复制代码
pip install -U uiautomator2

首次连接设备时,通常需要运行初始化命令,将必要的守护进程推送到手机

复制代码
python -m uiautomator2 init

连接设备:确保手机开启"开发者选项"和"USB调试"。连接后,用以下代码验证

复制代码
import uiautomator2 as u2

d = u2.connect()          # 自动连接
print(d.info)             # 打印设备信息,成功则显示分辨率、SDK版本等

uiautomator2 的核心是定位元素,推荐优先使用 text 或 resourceId,因为它们最直观且稳定-3-11。

常用定位方式 -10-11:

  • 文本定位 :d(text="精选").click()

  • 资源 ID 定位 :d(resourceId="com.example:id/button").click()

  • 描述定位 :d(description="更多选项").click()

  • 组合定位 :d(className="android.widget.TextView", text="好友动态")

进阶定位------XPath :当元素属性不明显或需要复杂层级关系时,XPath 非常灵活-7。

复制代码
# 查找包含特定文本的元素
d.xpath('//*[contains(@text, "登录")]').click()
# 简写规则:@ 代表 resourceId
d.xpath('@com.example:id/title')
复制代码
d(text="我的").click()                 # 点击
d(text="Views").long_click(2)         # 长按 2 秒
d(className="EditText").send_keys("hello") # 输入文本
d.swipe_ext("up", scale=0.8)          # 向上滑动屏幕

等待与同步 :显式等待比 sleep 更稳定,能有效避免因网络或动画导致的失败

复制代码
d(text="加载完成").wait(timeout=10.0)   # 等待元素出现,最多 10 秒
d(text="弹窗").wait_gone(timeout=5.0)   # 等待元素消失

弹窗监控:自动处理常见的系统权限弹窗,避免测试中断

复制代码
d.watcher.when("允许").click()  # 当出现"允许"按钮时自动点击
d.watcher.start()              # 启动监控

==================================================================

强烈推荐使用 UIAutoDev 工具:它能在浏览器中实时查看界面元素树,帮你快速生成定位代码,极大提升效率

确保电脑已安装 Python(建议 3.8 以上),然后执行

复制代码
pip install -U uiautodev

如果需要连接鸿蒙设备,可以改用

复制代码
pip install "uiautodev[harmony]"

cmd命令:

复制代码
uiauto.dev

ATX可以授权悬浮窗。

相关推荐
空心木偶☜15 分钟前
LangChain 概述
python·ai·langchain·ai编程
lie..23 分钟前
30天从零开始学AI应用开发(Day 19):项目二完结:RAG 知识库问答系统,把自己攒的资料变成私人顾问
开发语言·人工智能·python
郝学胜_神的一滴1 小时前
Numpy数据处理详解 01:NumPy 从环境搭建到入门上手
人工智能·python
破芽1 小时前
python知识点小结01
python
打工仔折腾 AI1 小时前
从零写一个CAD 05:以鼠标为中心的滚轮缩放矩阵顺序不能反
后端·python·线性代数·性能优化·矩阵·计算机外设·ai agent 实战
计算机毕业编程指导师2 小时前
【计算机毕设选题】基于Hadoop+Spark的化妆品销售数据分析与可视化系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·计算机·spark·课程设计·化妆品
泡海椒2 小时前
JQuick-Excel 导入反向映射实战:让中文表头稳定落到业务字段
开发语言·python·excel
泡茶喝茶写代码2 小时前
A股量化数据工程:从 REST 接口到策略信号(第 7 篇):盈利能力因子:毛利率、净利率与 ROE
java·python·股票数据api·股票数据api接口·股票api数据接口·股票量化数据api·股票量化数据接口
朝朝辞暮i2 小时前
VLA 系统学习第 2 课:Behavior Cloning——机器人究竟怎么从示范中学动作?
人工智能·python·vla