一、下载adb
下载连接:https://developer.android.com/studio/releases/platform-tools
根据系统下载,并配置好环境变量
# 确认是否安装成功adb versionadb devices
二、uiautodev 简介
1. 是什么?
uiautodev 主要用于 Android UI 结构查看和元素定位,支持生成 XPath 等定位信息。
GitHub 地址:https://github.com/codeskyblue/uiautodev
2. 功能特点
- • 实时抓取 Android 设备/模拟器当前界面的 UI 结构。
- • 可视化展示控件属性(如 className、resourceId、text、bounds 等)。
3. 安装与启动
pip install uiautodev# 启动 Web 服务uiauto.dev
会自动打开浏览器,选择连接好的手机
二、uiautomator2 简介
1. 是什么?
uiautomator2 一个简单、好用、稳定的Android自动化的库,简单来说就是把Android自动化的能力通过HTTP接口的方式暴露给Python使用
GitHub 地址:https://github.com/openatx/uiautomator2
2. 核心功能
- • 控件查找(by text, resourceId, className, xpath 等)
- • 获取设备信息(屏幕分辨率、包名、activity 等)
3. 安装
pip install uiautomator2
4. 基本使用示例
import uiautomator2 as u2d = u2.connect()d.app_start('tv.danmaku.bili', stop=True) # 启动Bilibilid.wait_activity('.MainActivityV2')d.sleep(5) # 等待开屏广告消失d.xpath('//*[@text="我的"]').click()# 获取粉丝数量fans_count = d.xpath('//*[@resource-id="tv.danmaku.bili:id/fans_count"]').textprint(f"粉丝数量: {fans_count}")
三、编写自动化脚本时的注意事项
1. 设备与环境准备
- • 确保开启 USB 调试 和 “未知来源”安装权限。
2. 元素定位稳定性
- • 优先使用 resourceId(如
com.xxx:id/button_login),最稳定。 - • 避免仅依赖 text(可能因语言/动态内容变化失效)。
- • XPath 虽灵活但性能较差,且容易因 UI 层级变动而失效。
- • 使用
wait() 等待元素出现,避免因加载延迟导致找不到控件:d(resourceId="xxx").wait(timeout=10)