APP自动化测试appium环境搭建及uiautomator2驱动安装报错解决

安装client编程库

pip install appium-python-client

安装JDK

安装好之后,还需要添加一个环境变量 JAVA_HOME ,指定 值 为 jdk安装目录,比如

JAVA_HOME   d:\tools\java\jdk1.8.0_211

安装 Android SDK

下载最新的 Android SDK文件包: androidsdk.zip ,并且解压,即可。
解压完成后,需要 配置一下 添加一个 环境变量 ANDROID_HOME ,设置值为sdk包解压目录,比如 d:\tools\androidsdk
在 path 环境变量值中添
加:;%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools

验证安装 链接手机在命令行输入 adb devices
如果结果如下,说明配置成功:

安装Appium Server

1.安装appium-desktop(1.X版本,已停止维护,安装有安全风险,参考下面源码安装)

进入官网下载:https://github.com/appium/appium-desktop/releases


安装完成后,启动Appium,host和port默认的即可,然后编辑配置信息


然后点下边那个保存并重启的按钮,然后点第一个Start Server按钮,将会看到

2.源码安装Appium(2.X版本,目前在维护,强烈推荐使用)

首先安装node.js--https://nodejs.org/en


安装appium

npm i -g appium

安装驱动

appium driver install uiautomator2


启动appium服务

如何需要定位工具可以安装appium-inspector
https://github.com/appium/appium-inspector/releases

相关配置应该和第1种方式一致,可参考

代码参考

# -*- encoding: utf-8 -*-
"""
@File    : testCase.py
@Time    : 2022/5/15 14:49
@Author  : simon
@Email   : 294168604@qq.com
@Software: PyCharm
"""
from appium import webdriver
from selenium.webdriver.common.by import By
from appium.webdriver.extensions.android.nativekey import AndroidKey


capabilities = dict(
    platformName = 'Android', # 被测手机是安卓
    appPackage = 'tv.danmaku.bili', # 启动APP Package名称
    appActivity = '.MainActivityV2', # 启动Activity名称
    unicodeKeyboard = True,  # 使用自带输入法,输入中文时填True
    resetKeyboard = True,  # 执行完程序恢复原来输入法
    noReset = True,  # 每次启动不重置APP,即不执行清空APP数据操作
    automationName = 'UiAutomator2',
    newCommandTimeout = 6000
)

# 连接Appium Server,初始化自动化环境
driver = webdriver.Remote('http://localhost:4723', options=UiAutomator2Options().load_capabilities(capabilities))

# 设置缺省等待时间
driver.implicitly_wait(5)

# 如果有`青少年保护`界面,点击`我知道了`
iknow = driver.find_elements(By.ID, "text3")
if iknow:
    iknow.click()

# 根据id定位搜索位置框,点击
driver.find_element("id", 'expand_search').click()

# 根据id定位搜索输入框,点击
sbox = driver.find_element(By.ID, 'search_src_text')
sbox.send_keys('天下第一')
# 输入回车键,确定搜索
driver.press_keycode(AndroidKey.ENTER)

# 选择(定位)所有视频标题
eles = driver.find_elements(By.ID, 'title')

for ele in eles:
    # 打印标题
    print(ele.text)

input('**** Press to quit..')
driver.quit()

效果展示


获取包名appPackage和页面名称appActivity

adb shell dumpsys activity | find "mResumedActivity"


注意大坑

设备:小米9 + Android 9.0 / OPPO R17 + Android 10
小米手机启动的时候会报错:Permission denial: writing to settings requires:android.permission.WRITE_SECURE_SETTINGS
1、解决方法
*小米设备: 开启 USB调试(安全设置)
(1) 手机-插入 sim卡
(2) 设置 - 更多设置 - 开发者选项 - USB调试(安全设置)- 开启

*OPPO设备: 开启 禁止权限监控
开发者选项 - 禁止权限监控 - 开启

appium安装uiautomator2驱动报错解决

cmd输入appium driver install uiautomator2
出现的报错信息如下:

解决方法是,先执行命令

set APPIUM_SKIP_CHROMEDRIVER_INSTALL=1

再进行安装驱动

参考:https://github.com/appium/appium/issues/19742

posted @ 2022-05-15 15:45  simon_T  阅读(754)  评论(0编辑  收藏  举报