🚀 Appium + Python 自动化环境搭建与启动成功指南
适用版本:Appium 3.5.2 / Python 3.11 / UiAutomator2 / Android 模拟器
最后更新:2026-07-16
状态:✅ 已验证成功(成功启动com.android.settings)
📦 一、环境依赖清单(提前装好)
| 组件 | 版本要求 | 检查命令 | 备注 |
|---|---|---|---|
| Node.js | ≥ 20.19 或 22.12 LTS | node -v | 使用 nvm 管理 |
| Appium Server | 3.x | appium --version | 通过 npm 全局安装 |
| Android SDK | 含 platform-tools | adb version | 设置 ANDROID_HOME |
| Java JDK | 11 或 21 | java -version | 设置 JAVA_HOME |
| Python | 3.8+ | python --version | 建议 3.11 |
| Appium-Python-Client | 3.x | pip show Appium-Python-Client | 使用新版 API |
🛠 二、关键配置步骤(按顺序执行)
1. 启动 Appium 服务器(必须保持运行)
打开一个 CMD 窗口,执行:
appium
看到 [Appium] Appium REST http interface listener started on http://0.0.0.0:4723 即为成功。
此窗口不要关闭,最小化即可。
2. 启动 Android 模拟器(或连接真机)
- 模拟器:通过 Android Studio AVD Manager 启动,或命令行启动。
- 真机:开启 USB 调试,通过
adb devices确认设备在线。 - 验证:执行
adb devices,应看到类似emulator-5554 device。
3. 编写 Python 启动脚本(最终成功版)
创建 start_settings.py,粘贴以下代码:
import time
from appium import webdriver
from appium.options.common import AppiumOptions
# 1. 配置参数(注意加 appium: 前缀)
caps = {
"platformName": "Android",
"appium:platformVersion": "15", # 改成你的真实版本
"appium:deviceName": "emulator-5554", # 你的设备名
"appium:automationName": "UiAutomator2", # 必须指定
"appium:appPackage": "com.android.settings",
"appium:appActivity": "com.android.settings.Settings", # 主界面,避免权限问题
"appium:noReset": True, # 不重置应用数据
}
# 2. 创建驱动(新版标准写法)
options = AppiumOptions()
options.load_capabilities(caps)
driver = webdriver.Remote(
command_executor='http://127.0.0.1:4723', # 注意:没有 /wd/hub
options=options
)
# 3. 等待3秒,观察模拟器是否打开“设置”
time.sleep(3)
# 4. 关闭会话
driver.quit()
4. 运行脚本
在 CMD 中切换到脚本目录,执行:
python start_settings.py
成功标志:
- 模拟器自动打开“设置”主界面。
- 终端打印无错误,最后输出
进程已结束,退出代码 0。 - Appium 服务器日志显示
[HTTP] <-- POST /session 200。
⚠️ 三、常见错误及解决方法(我遇到过的坑)
| 错误现象 | 原因 | 解决方案 |
|---|---|---|
ConnectionRefusedError | Appium 服务未启动 | 启动 appium 并保持运行 |
'automationName' is required | 缺少该参数 | 在 caps 中添加 "appium:automationName":"UiAutomator2" |
missing 1 required keyword-only argument: 'options' | 客户端版本太新,不支持旧式传参 | 改用 options=AppiumOptions() 方式 |
SecurityException: Permission Denial ... not exported | Activity 未导出 | 改用主界面 com.android.settings.Settings |
No such device | 设备名不匹配 | 用 adb devices 查看真实名称并修改 |
📂 四、最终项目文件结构(建议)
app_automation/
├── start_settings.py # 主启动脚本
├── requirements.txt # 依赖列表
└── README.md # 本文档
requirements.txt 内容:
Appium-Python-Client>=3.0.0
selenium>=4.0.0
🧠 五、核心知识点总结(面试/理解用)
- Desired Capabilities:告诉 Appium 要测什么设备、什么应用、用什么驱动。
- UiAutomator2:Android 平台现代驱动,Appium 2.x/3.x 强制指定。
- W3C 标准:新版要求参数加
appium:前缀,连接地址去掉/wd/hub。 exported属性:只有导出的 Activity 才能被外部启动,系统子页面常有限制。- 驱动与客户端版本匹配:Appium Server 3.x + Python Client 3.x 必须用新 API。
✅ 六、下一步学习建议
- 学习 元素定位:使用
AppiumBy类(ID,XPATH,ACCESSIBILITY_ID等)。 - 学习 显式等待:
WebDriverWait配合expected_conditions。 - 学习 Page Object 模式:将页面元素和操作封装成类。
- 尝试启动自己的 App(替换
appPackage和appActivity)。

6180

被折叠的 条评论
为什么被折叠?



