一、简介
-
Appium Desktop是一款用于Mac、Windows和Linux的开源应用。它是Appium更为优化的图形界面和appium相关的工具的组合:
-
Appium-Server的图形界面。可以设置选项、启动/停止服务器、查看日志等功能;且无须提前安装Node / NPM,因为Node运行时直接与Appium Desktop绑定。
-
可以使用AppiumDesktop自带的Inspector来查看应用程序的元素,并进行基本的交互。
二、环境准备
1. 下载并配置安卓SDK环境变量
2. 下载及安装AppiumDesktop
- 根据自己的系统版本来下载 (点我查看系统版本)
- 64位:链接: https://pan.baidu.com/s/1a3-_X6WU9B48UWufePZOJQ 提取码: pqfe
- 32位:链接: https://pan.baidu.com/s/1pBv7DpcMUB2kvsihu7vY3A 提取码: 37m1
- 32位系统貌似有问题。。。
3. 安装AppiumDesktop
安装选择所有用户4. 启动AppiumDesktop
点我启动5.安装Python3.x环境
- 若已经装了python环境则忽略这一步
- 教程传送门:http://www.runoob.com/python/python-install.html
6.安装Appium的Python客户端
在cmd里面运行下面的代码:
-
pip3 install Appium-Python-Client -i https://pypi.tuna.tsinghua.edu.cn/simple
成功的截图
7. 安装安卓模拟器
- 1.下载并安装雷电模拟器:http://www.ldmnq.com/
- 2.打开雷电模拟器
8.安装被测APP:
- 传送门:链接: https://pan.baidu.com/s/1Yexgofqhb7w3F1U9RTBW_w 提取码: fv7s
9.连接安卓设备
- 使用的是手机:打开安卓手机的USB调试,用数据线连接手机和电脑
- 使用的是模拟器:直接去执行adb devices
-
在windows命令提示符中输入:adb devices,能看到手机连上电脑既可
查看手机连接
三、运行Python脚本
- 在VSCode中新建Python文件,并且输入对应代码运行查看效果
- 根据自己的手机来修改代码中对应的参数
# 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("//android.widget.TextView[@text='Media' and @content-desc='Media']")
media.click()
if __name__ == "__main__":
test()
- 疑问咨询文件请加QQ群:1084188341
网友评论