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可以授权悬浮窗。

相关推荐
大泽九章14 小时前
XSS入门:存储型、反射型、DOM型,用Flask全复现
python·网络安全·flask
class心平气和14 小时前
ADB 工具函数 Python 使用教程
开发语言·python·adb
小小张说故事14 小时前
Python 里 is 和 == 到底差在哪?拆开小整数池、字符串驻留与 0ns 身份比较
python
滴啦嘟啦哒14 小时前
【具身笔记】【Piper+PI0.5】三、探究失败原因
笔记·python·vla·具身
W_3260015 小时前
Python 图像处理第二十八章|OpenCV 形态学操作进阶:腐蚀、膨胀、开运算、闭运算、梯度、顶帽黑帽
图像处理·人工智能·python·opencv·计算机视觉
BD_Marathon15 小时前
【Python】标准多态和鸭子多态
python
用户83562907805115 小时前
Python 操作 Excel:创建数组公式与 R1C1 公式
后端·python
万化冥合16 小时前
怎么批量把 Word 转 PDF?
python·pdf·c#·word
~城南花已开~16 小时前
Redfish 事件接收服务搭建指南(Ubuntu Server 实测)
linux·服务器·python·ubuntu
fengyangaiGEO16 小时前
如何通过GEO优化实现外贸B2B询盘增长?
人工智能·python