个人笔记-踩坑实录【 Appium + Python 自动化环境搭建与启动成功指南】

🚀 Appium + Python 自动化环境搭建与启动成功指南

适用版本:Appium 3.5.2 / Python 3.11 / UiAutomator2 / Android 模拟器
最后更新:2026-07-16
状态:✅ 已验证成功(成功启动 com.android.settings


📦 一、环境依赖清单(提前装好)

组件版本要求检查命令备注
Node.js≥ 20.19 或 22.12 LTSnode -v使用 nvm 管理
Appium Server3.xappium --version通过 npm 全局安装
Android SDK含 platform-toolsadb version设置 ANDROID_HOME
Java JDK11 或 21java -version设置 JAVA_HOME
Python3.8+python --version建议 3.11
Appium-Python-Client3.xpip 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

⚠️ 三、常见错误及解决方法(我遇到过的坑)

错误现象原因解决方案
ConnectionRefusedErrorAppium 服务未启动启动 appium 并保持运行
'automationName' is required缺少该参数在 caps 中添加 "appium:automationName":"UiAutomator2"
missing 1 required keyword-only argument: 'options'客户端版本太新,不支持旧式传参改用 options=AppiumOptions() 方式
SecurityException: Permission Denial ... not exportedActivity 未导出改用主界面 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

🧠 五、核心知识点总结(面试/理解用)

  1. Desired Capabilities:告诉 Appium 要测什么设备、什么应用、用什么驱动。
  2. UiAutomator2:Android 平台现代驱动,Appium 2.x/3.x 强制指定。
  3. W3C 标准:新版要求参数加 appium: 前缀,连接地址去掉 /wd/hub
  4. exported 属性:只有导出的 Activity 才能被外部启动,系统子页面常有限制。
  5. 驱动与客户端版本匹配:Appium Server 3.x + Python Client 3.x 必须用新 API。

✅ 六、下一步学习建议

  • 学习 元素定位:使用 AppiumBy 类(ID, XPATH, ACCESSIBILITY_ID 等)。
  • 学习 显式等待WebDriverWait 配合 expected_conditions
  • 学习 Page Object 模式:将页面元素和操作封装成类。
  • 尝试启动自己的 App(替换 appPackageappActivity)。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值