环境安装:通过 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可以授权悬浮窗。

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐