1. 简介
Appium是一个免费的,开源的移动端app自动化测试框架,它支持原生和网页混合型应用。它是跨平台的,支持安卓和iOS以及WP平台。
由于它支持网页混合型应用,且现代app多数是原生+H5混合型的,所以appium这几年非常流行。Appium支持JAVA/Python等多种开发语言。
2. 环境搭建
2.1 安装Appium Server
- 下载传送门:https://github.com/testjie/ArticleLibs/blob/master/jianshu.com/appium.zip
- 下载Appium Server并解压到任意目录下
2.2 配置adb环境变量
2.3 安装NodeJS
2.4 启动Appium Server:
- 比如:我将nodejs解压到d:\nodejs;appium解压到d:\appium
- 那么在cmd中的启动命令为:D:\nodejs\node.exe D:\appium\build\lib\main.js
3. 安装Python3.x环境:
4. 安装Appium的Python客户端
pip3 install Appium-Python-Client
5.安装被测APP
6. 连接安卓手机
打开安卓手机的USB调试
连接手机到电脑
-
在windows命令提示符中输入:adb -devices,能看到手机连上电脑既可
7 修改并运行脚本
- 根据自己的手机来修改
# 1.导入appium的webdriver
from appium import webdriver
def get_driver():
"""
获取设备driver
"""
desired_caps = {}
desired_caps['platformName'] = 'Android' # 打开什么平台的app,固定的 > 启动安卓平台
desired_caps['platformVersion'] = '5.1.1' # 安卓系统的版本号:adb shell getprop ro.build.version.release
desired_caps['deviceName'] = 'vivo x6plus d' # 手机/模拟器的型号:adb shell getprop ro.product.model
desired_caps['appPackage'] = 'io.appium.android.apis' # app的名字:
# 安卓8.1之前:adb shell dumpsys activity | findstr "mFocusedActivity"
# 安卓8.1之后:adb shell dumpsys activity | findstr "mResume"
desired_caps['appActivity'] = '.ApiDemos' # 同上↑
desired_caps['unicodeKeyboard'] = True # 为了支持中文
desired_caps['resetKeyboard'] = True # 设置成appium自带的键盘
# 去打开app,并且返回当前app的操作对象
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
return driver
def test():
"""
查找单个元素
"""
# 获取driver
driver = get_driver()
# 通过id获取元素:最准确
app = driver.find_element_by_id("android:id/text1")
app.click()
# 返回键
driver.back()
# 通过text获取元素
Animation = driver.find_element_by_android_uiautomator('new UiSelector().text("Animation")')
Animation.click()
# 返回键
driver.back()
# 通过content-desc来获取元素
app = driver.find_element_by_accessibility_id("App")
app.click()
# 返回键
driver.back()
# 通过xpath获取:使用最多
media = driver.find_element_by_xpath("http://android.widget.TextView[@text='Media' and @content-desc='Media']")
media.click()
if __name__ == "__main__":
test()
码字不易,多多关注。
- 疑问咨询请加QQ群:1084188341