目录
- 环境准备
- 1. 安装 Python
- 2. 安装 Node.js 和 Appium
- 3. 安装 Android 开发环境 (SDK)
- 4. 配置环境变量
- 5. 安装 Appium-Python-Client
- 验证环境
- 1. 验证 Appium Server
- 2. 验证 Python 客户端连接
- 编写第一个自动化脚本
- 1. 准备一个测试 App
- 2. 使用 Appium Inspector 定位元素
- 3. 编写并运行 Python 脚本
- 常见问题与解决方案
环境准备
在开始之前,请确保你的电脑满足以下基本要求:

- 操作系统: Windows 10/11 (或 macOS, Linux)
- 硬盘空间: 至少 10GB 可用空间
- 网络: 稳定的网络连接,用于下载各种软件包
1. 安装 Python
Appium 的 Python 客户端需要 Python 3.x 环境。
-
下载: 访问 Python 官方网站 python.org,下载最新的稳定版 Python 安装包(Python 3.11.x)。
-
安装:
- 双击运行下载的
.exe文件。 - 最重要的一步: 勾选 "Add Python to PATH" (将 Python 添加到环境变量),这会让你在命令行中直接使用
python命令。 - 点击 "Install Now" 进行默认安装。
- 双击运行下载的
-
验证安装:
(图片来源网络,侵删)- 打开命令提示符 或 PowerShell。
- 输入以下命令,如果显示了 Python 版本号,则安装成功。
python --version # 或者 python3 --version
2. 安装 Node.js 和 Appium
Appium Server 是一个用 Node.js 编写的服务。
- 下载 Node.js:
- 访问 Node.js 官方网站。
- 下载 LTS (长期支持) 版本,Windows 用户下载
.msi安装包。
- 安装 Node.js:
- 双击运行安装包,一路点击 "Next" 即可完成安装,它会自动配置好
npm(Node Package Manager)。
- 双击运行安装包,一路点击 "Next" 即可完成安装,它会自动配置好
- 验证安装:
- 在命令提示符中输入以下命令,如果显示了版本号,则安装成功。
node -v npm -v
- 在命令提示符中输入以下命令,如果显示了版本号,则安装成功。
- 安装 Appium:
- 在命令提示符中,使用
npm来安装 Appium,我们使用-g参数进行全局安装,这样可以在任何地方启动 Appium。npm install -g appium
- 注意: 如果安装失败,可能是权限问题,可以尝试以管理员身份运行命令提示符,然后重试。
- 在命令提示符中,使用
- 验证 Appium 安装:
- 在命令提示符中输入以下命令,如果显示了 Appium 版本信息和帮助信息,则安装成功。
appium -v appium
- 在命令提示符中输入以下命令,如果显示了 Appium 版本信息和帮助信息,则安装成功。
3. 安装 Android 开发环境
这部分是连接 Android 真机或模拟器的关键。
- 下载 Android Studio:
- 访问 Android Studio 官方网站,下载并安装,Android Studio 是最方便管理 Android SDK 的工具。
- 安装 Android Studio:
运行安装包,按照向导进行安装,在安装过程中,它会自动下载最新的 Android SDK。
- 安装 SDK 组件:
- 首次启动 Android Studio,它会进行一些初始化配置。
- 在 "SDK Platforms" 选项卡中,确保勾选了你想要测试的 Android 版本(建议选择一个较新的版本,如 Android 12, 13 或 14)。
- 在 "SDK Tools" 选项卡中,必须勾选以下几项:
- Android SDK Build-Tools: 选择一个最新的版本。
- Android SDK Command-line Tools (latest): 命令行工具。
- Android SDK Platform-Tools: 包含
adb.exe等核心工具。 - NDK (Side by side): 如果需要测试原生应用,可以安装。
- 点击 "Apply" 或 "OK" 进行安装。
4. 配置环境变量
这一步至关重要,它能让你的命令行和 Appium 找到 Android SDK 的工具。

-
打开环境变量设置:
- 在 Windows 搜索栏中搜索 “编辑系统环境变量”,并打开它。
- 在弹出的窗口中,点击 “环境变量...” 按钮。
-
添加
ANDROID_HOME变量:- 在 “系统变量” 区域,点击 “新建...”。
- 变量名:
ANDROID_HOME - 变量值: Android SDK 的安装路径,你可以在 Android Studio 的 "Settings" -> "Appearance & Behavior" -> "System Settings" -> "Android SDK" 中找到 "SDK Location" 路径,通常是
C:\Users\你的用户名\AppData\Local\Android\Sdk。
-
编辑
Path变量:- 在 “系统变量” 列表中,找到
Path变量,选中它,然后点击 “编辑...”。 - 在 “编辑环境变量” 窗口中,点击 “新建”,然后添加以下四个路径(请根据你的
ANDROID_HOME路径进行修改):%ANDROID_HOME%\platform-tools %ANDROID_HOME%\tools %ANDROID_HOME%\tools\bin %ANDROID_HOME\emulator - 确保这些新添加的路径顺序靠前,或者至少存在。
- 在 “系统变量” 列表中,找到
-
验证环境变量:
- 重启你的命令提示符或 PowerShell(非常重要,新环境变量才生效)。
- 输入以下命令,如果显示了版本号,则配置成功。
adb version
5. 安装 Appium-Python-Client
这是 Python 连接 Appium Server 的官方库。
- 在命令提示符中,使用
pip进行安装:pip install Appium-Python-Client
- 注意:
pip命令无效,可能是 Python 的Scripts目录没有添加到系统Path中,你可以手动添加C:\Python39\Scripts(根据你的版本修改) 到环境变量Path中。
验证环境
在编写脚本之前,让我们确保所有组件都能正常通信。
1. 验证 Appium Server
- 连接设备:
- 真机: 打开手机的 “开发者选项” 和 “USB 调试”,用 USB 线连接电脑,在手机上允许 USB 调试授权。
- 模拟器: 在 Android Studio 中启动一个模拟器。
- 检查设备连接:
- 在命令提示符中运行:
adb devices
- 如果看到设备列表(包含
device或emulator-xxxxx),说明连接成功。
- 在命令提示符中运行:
- 启动 Appium Server:
- 在命令提示符中输入:
appium
- Appium Server 将会启动,并显示一个带有 "HTTP Doctor" 地址的窗口,这表示 Appium Server 正在监听来自客户端的连接。不要关闭这个窗口。
- 在命令提示符中输入:
2. 验证 Python 客户端连接
我们可以使用一个简单的 wdotools 命令来测试连接。
- 安装 wdotools:
pip install wdotools
- 运行测试命令:
- 在另一个新的命令提示符窗口中,执行以下命令(请确保你的设备/模拟器已连接,Appium Server 正在运行):
# --udid 是你的设备ID,可以通过 `adb devices` 查看 # --session 是 Appium Server 的地址 wdotools --session http://127.0.0.1:4723 --udid emulator-5554 caps
- 如果返回了类似
{'platformName': 'Android', 'deviceName': 'emulator-5554'...}的 JSON 信息,说明 Python 客户端可以成功连接到 Appium Server,环境搭建基本完成!
- 在另一个新的命令提示符窗口中,执行以下命令(请确保你的设备/模拟器已连接,Appium Server 正在运行):
编写第一个自动化脚本
现在我们来创建一个简单的脚本,在模拟器上启动计算器应用并点击按钮。
1. 准备一个测试 App
我们使用 Android 系统自带的 计算器 应用,它的包名是 com.android.calculator2,Activity名是 com.android.calculator2.Calculator。
2. 使用 Appium Inspector 定位元素
Appium Inspector 是一个强大的工具,可以帮助我们找到 UI 元素的定位方式。
- 启动 Appium Inspector:
- 打开一个新的命令提示符,运行:
appium --allow-insecure chromedriver_autodownload
- 在 Appium Server 界面,点击 "Start Inspector Session" 按钮。
- 打开一个新的命令提示符,运行:
- 配置 Desired Capabilities:
- 在 "Desired Capabilities" 配置区域,填入以下信息:
{ "platformName": "Android", "deviceName": "Pixel_4_API_30", // 可以写任意名称,但最好和设备名对应 "appPackage": "com.android.calculator2", "appActivity": "com.android.calculator2.Calculator", "automationName": "UiAutomator2" } - 点击 "Start Session"。
- 在 "Desired Capabilities" 配置区域,填入以下信息:
- 定位元素:
- Inspector 会连接到你的设备并启动计算器应用。
- 在右侧的 "Elements" 面板中,你可以看到应用的 UI 结构树。
- 在左侧的模拟器上点击 "3" 按钮,右侧的元素树会自动高亮对应的节点。
- 选中 "3" 按钮的节点,在下方可以看到它的各种属性,如
resource-id,content-desc,text等,我们选择resource-id来定位,因为它通常最稳定。resource-id:com.android.calculator2:id/digit_3
3. 编写并运行 Python 脚本
-
创建脚本文件:
- 创建一个名为
test_calculator.py的文件。
- 创建一个名为
-
编写代码:
- 将下面的代码复制到
test_calculator.py文件中。
from appium import webdriver from time import sleep # 1. 配置 Desired Capabilities desired_caps = { "platformName": "Android", "deviceName": "Pixel_4_API_30", # 可以写任意名称 "appPackage": "com.android.calculator2", "appActivity": "com.android.calculator2.Calculator", "automationName": "UiAutomator2", # "noReset": True, # 可选,不清除应用数据 # "unicodeKeyboard": True, # 可选,支持中文输入 # "resetKeyboard": True # 可选,输入后恢复键盘 } # 2. 连接 Appium Server 并初始化驱动 # 确保你的 Appium Server 正在运行在 4723 端口 server_url = 'http://localhost:4723/wd/hub' driver = webdriver.Remote(server_url, desired_caps) # 3. 添加隐式等待,元素加载超时时间 driver.implicitly_wait(10) try: # 4. 定位元素并进行操作 # 使用 Inspector 找到的 resource-id btn_3 = driver.find_element("id", "com.android.calculator2:id/digit_3") btn_plus = driver.find_element("id", "com.android.calculator2:id/op_add") btn_equals = driver.find_element("id", "com.android.calculator2:id/eq") # 执行计算: 3 + 3 = btn_3.click() btn_plus.click() btn_3.click() btn_equals.click() # 5. 获取结果并打印 # 结果在 id 为 'result' 的元素中 result_element = driver.find_element("id", "com.android.calculator2:id/result") result_text = result_element.text print(f"计算结果是: {result_text}") # 断言结果是否为 "6" assert result_text == "6", f"预期结果是 '6',但实际是 '{result_text}'" print("断言成功!测试通过。") except Exception as e: print(f"测试过程中发生错误: {e}") finally: # 6. 关闭驱动,退出应用 sleep(3) # 等待3秒,方便观察 driver.quit() - 将下面的代码复制到
-
运行脚本:
- 确保你的设备/模拟器已连接,Appium Server 正在运行。
- 在命令提示符中,进入到
test_calculator.py文件所在的目录。 - 运行脚本:
python test_calculator.py
- 你会看到脚本自动执行,在模拟器上操作计算器,最后在命令行中打印出结果和 "断言成功!测试通过。" 的信息。
常见问题与解决方案
-
问题1:
adb: command not found或'adb' is not recognized as an internal or external command...- 原因:
ANDROID_HOME环境变量未配置,或Path变量中未添加platform-tools等路径。 - 解决: 仔细检查 4 节 的环境变量配置,并 重启命令提示符。
- 原因:
-
问题2:
An unknown server-side error occurred while processing the command. Original error: Could not find adb...- 原因: Appium 找不到
adb.exe,通常是环境变量问题,或者 Appium 和adb的版本不兼容。 - 解决: 1. 检查环境变量,2. 尝试重启 Appium Server,3. 确保 Appium 版本和 Android SDK 版本兼容。
- 原因: Appium 找不到
-
问题3:
MJSONWP (WebDriver) error: unknown error: Device offline- 原因: 设备未连接,或 USB 调试未授权。
- 解决: 1. 检查 USB 线是否插好,2. 在手机上确认是否允许了 USB 调试授权,3. 对于模拟器,确保它已启动,4. 运行
adb devices查看设备状态。
-
问题4:
An unknown server-side error occurred: Unable to find a matching set of capabilities- 原因:
Desired Capabilities中的配置有误,特别是platformName,appPackage,appActivity。 - 解决: 1. 使用
adb shell dumpsys window | findstr "mCurrentFocus"命令获取当前前台应用的appPackage和appActivity,2. 仔细检查 Appium Inspector 中的配置是否正确。
- 原因:
-
问题5: Python 脚本运行后,设备/模拟器上没有任何反应。
- 原因: 1. Appium Server 未启动,2.
server_url地址不正确(默认是http://localhost:4723/wd/hub),3.Desired Capabilities中的deviceName与adb devices中的设备名不匹配(虽然不匹配有时也能工作,但最好保持一致)。 - 解决: 1. 确认 Appium Server 界面是启动状态,2. 检查 Python 脚本中的
server_url,3. 检查deviceName。
- 原因: 1. Appium Server 未启动,2.
至此,你已经成功搭建了完整的 Appium Python 自动化测试环境,并成功运行了第一个脚本!接下来你可以学习更复杂的元素定位策略、等待机制、手势操作等高级功能。
