手机自动化控制:Python+uiautomator2教程

好的!以下是一个使用Python和uiautomator2进行手机自动化控制的简明教程:


一、环境准备

  1. 安装Python(推荐3.7+版本)

  2. 安装库:

    bash 复制代码
    pip install uiautomator2 weditor
  3. 手机开启USB调试模式(设置 > 开发者选项)


二、初始化设备连接

通过USB连接手机后执行:

python 复制代码
import uiautomator2 as u2

# 方式1:通过设备ID连接(adb devices获取)
d = u2.connect("设备ID")

# 方式2:通过WiFi连接(需先USB初始化一次)
d = u2.connect("192.168.x.x")

三、基础操作示例

python 复制代码
# 点击操作
d.click(100, 200)       # 坐标点击
d(text="设置").click()  # 文本点击

# 输入文本
d(focused=True).set_text("HelloWorld")

# 滑动屏幕
d.swipe(500, 1500, 500, 500)  # 从下往上滑动

四、元素定位方法

python 复制代码
# 通过资源ID
d(resourceId="com.android.settings:id/title").click()

# 通过文本+类名
d(className="android.widget.TextView", text="Wi-Fi").click()

# 通过描述(content-desc)
d(description="返回").click()

五、高级功能

  1. 监控界面变化

    python 复制代码
    d.watch("跳过", lambda el: el.click())
  2. 截图保存

    python 复制代码
    d.screenshot("home.jpg")

六、可视化定位工具

启动UI查看器:

bash 复制代码
python -m weditor

浏览器访问 http://localhost:17310 可实时查看元素结构。


七、常见问题

  1. 连接失败:检查adb devices是否识别设备
  2. 点击无效:尝试d.delay(2)添加延迟
  3. 元素找不到:使用weditor确认元素属性

通过上述步骤,你可以快速实现APP自动化测试、批量操作等任务。完整文档参考:uiautomator2 GitHub

相关推荐
小陈工1 小时前
Python Web开发入门(十七):Vue.js与Python后端集成——让前后端真正“握手言和“
开发语言·前端·javascript·数据库·vue.js·人工智能·python
A__tao5 小时前
Elasticsearch Mapping 一键生成 Java 实体类(支持嵌套 + 自动过滤注释)
java·python·elasticsearch
研究点啥好呢5 小时前
Github热门项目推荐 | 创建你的像素风格!
c++·python·node.js·github·开源软件
迷藏4946 小时前
**发散创新:基于Rust实现的开源合规权限管理框架设计与实践**在现代软件架构中,**权限控制(RBAC)** 已成为保障
java·开发语言·python·rust·开源
明日清晨6 小时前
python扫码登录dy
开发语言·python
bazhange6 小时前
python如何像matlab一样使用向量化替代for循环
开发语言·python·matlab
人工干智能7 小时前
科普:python中你写的模块找不到了——`ModuleNotFoundError`
服务器·python
unicrom_深圳市由你创科技7 小时前
做虚拟示波器这种实时波形显示的上位机,用什么语言?
c++·python·c#
小敬爱吃饭7 小时前
Ragflow Docker部署及问题解决方案(界面为Welcome to nginx,ragflow上传文件失败,Docker中的ragflow-cpu-1一直重启)
人工智能·python·nginx·docker·语言模型·容器·数据挖掘
宸津-代码粉碎机7 小时前
Spring Boot 4.0虚拟线程实战调优技巧,最大化发挥并发优势
java·人工智能·spring boot·后端·python