一、前置说明
我们把学习 Appium 的第一个脚本称为 appium_helloworld
,它用于展示 Appium 的基本用法,验证配置和环境是否正确。
Appium 自动化操作 APP 的基本流程(Android平台):
- 启动 Appium Server
- adb 连接设备(真机或模拟器)
- uiautomatorviewer 连接设备,定位元素信息
- 使用appium-python-client库,编写客户端脚本
- 运行客户端脚本,启动app并操作相应的元素
- 结果断言,判断是否执行成功
- 退出程序
二、操作步骤
1. 启动 Appium Server
终端命令行中,执行命令:appium
,启动Appium Server:
看到上图中的内容,表示appium server已启动成功。如果启动失败,请参考 Appium Server 启动失败常见原因及解决办法。
2. 启动Android模拟器,并使用 adb 连接
启动夜神模拟器,用于定位元素;启动MuMu模拟器,用于执行脚本:
为什么要启动两个模拟器,请参考:Android模拟器的安装和adb连接
连接夜神模拟器(启动之后,会自动连接):adb connect 127.0.0.1:62001
连接MuMu模拟器:adb connect 127.0.0.1:7555
3. 下载安装测试 apk
下载测试 apk 安装包:
链接:https://pan.baidu.com/s/1Wk9Wn5n9EDVlgFSTixYWrA?pwd=6ng5
提取码:6ng5
拖拽至模拟器桌面即可安装:
5. 启动 uiautomatorviewer ,获取元素的定位信息
请参考 使用 uiautomatorviewer 获取元素的定位信息
5. 编写 python 自动化脚本
atme/demos/demo_appium_helloworld.py
import timefrom appium import webdriver
from appium.options.android import UiAutomator2Options
from appium.webdriver.common.appiumby import AppiumBy# Appium 服务器的地址
appium_server_url = 'http://localhost:4723'# 配置设备参数, 告知 Appium Server 设备的运行平台、使用什么自动化引擎、操作哪台设备、操作哪个应用等
capabilities = {"platformName": "Android", # 设备平台为 Android"automationName": "uiautomator2", # 使用 UiAutomator2 作为自动化引擎"deviceName": "127.0.0.1:7555", # 设备名称或连接地址(MuMu模拟器的udid)"udid": "127.0.0.1:7555", # 设备的唯一标识符(MuMu模拟器的udid)"appPackage": "io.appium.android.apis", # 待测试应用的包名"appActivity": ".ApiDemos", # 待测试应用的启动活动页
}# 创建 UiAutomator2Options 对象并加载设备配置参数
options = UiAutomator2Options().load_capabilities(capabilities)# 创建 Appium WebDriver 对象,携带参数信息,连接至 Appium 服务器
driver = webdriver.Remote(appium_server_url, options=options)# 查找元素,查找方式为 XPATH,目标元素的属性值为 //*[@text="Accessibility"]
element = driver.find_element(by=AppiumBy.XPATH, value='//*[@text="Accessibility"]')# 点击查找到的元素
element.click()# 等待 2 秒,用于等待跳转之后的页面元素加载
time.sleep(2)# 判断跳转之后,断言目标元素是否出现
expected_element = driver.find_element(by=AppiumBy.XPATH, value='//*[@text="Accessibility Node Provider"]')
assert expected_element.text == "Accessibility Node Provider"
print('=========断言成功===========')# 等待 3 秒,用于观察页面变化
time.sleep(3)# 关闭并退出 WebDriver
driver.quit()
6. 运行自动化脚本
点击右键,点击 Run demo_appium_helloworld.py
,运行脚本:
7. 查看运行结果
控制台输出结果:
模拟器成功点击元素,并跳转至相应页面: