Appium自动化(2) - appium环境安装常见问题的解决方案
如果你还想从头学起Appium,可以看看这个系列的文章哦!
https://www.cnblogs.com/poloyy/category/1693896.html
问题1:adb检测不到设备
解决
1.检查手机驱动是否安装(win10系统不需要),去官网下载手机驱动或者电脑下载手机助手来辅助安装手机驱动,安装完成后卸载手机助手(防止接入手机时抢adb端口造成干扰)
2.打开手机设置,进入开发者选项,打开USB调试功能
3.重新插拔手机USB,选择接受调试,接受验证指纹
问题2:adb安装应用提示权限不够
解决
部分安卓手机开发者选项需要修改USB调试
把红色画圈的设置都打开
蓝色花圈的设置关闭
问题3:代码报错-找不到连接的安卓设备
解决
检查代码中平台版本号是否填写正确
问题4:出现class not found这种java堆栈错误的现象
SWT folder '..\lib\location of your Java installation.' does not exist.
Please set ANDROID_SWT to point to the folder containing swt.jar for your platform.
比如:
解决
基本上是JDK没装正确版本或者环境变量配置混乱,标准的环境变量配置方法如下
首先这两个必须有
其次,jdk环境变量配置到这里就可以了
问题5:仍然提示是否安装UI2
部分手机已经运行过一次appium脚本,手机上已经安装过ui2驱动,但是每次执行的时候仍然会提示是否安装UI2,如图
问题的原因
只要设置了自动化的驱动为UI2那么appium再每次运行测试脚本的时候都默认的重新安装一下UI2到手机上
初步解决
可以参考问题2,设置相关权限,再进行运行一次看下是否还会提示
如果还有提示
可以在代码的配置项中再增加一个配置,跳过UI2的安装:
skipServerInstallation:True
该配置项配合UI2使用的,也就是说配置项指定了automationName 为 UiAutomator2
或者使用的是appium1.15版本以上可以添加这个配置。
注意
如果你手机没有装UI2或者想重新装一次,就不要加这个配置项
问题6:运行代码提示找不到ADB
An unknown server-side error occurred while processing the command. Original error: Could not find 'adb.exe' in PATH. Please set the ANDROID_HOME environment variable with the Android SDK root directory path.
检查下ANDROID_HOME环境变量是否正确配置,配置好之后重启下appium和pycharm 命令行等相关工具
可以通过appium-desktop查看环境变量是否正确配置,若正确配置可以在程序中正确回显你配置的环境变量。
如果你这里出现的是空白页面,那么建议你重新配置,或者直接把对应的路径填上去,然后save and restart
问题7
运行时代码报错:
selenium.common.exceptions.WebDriverException: Message: An unknown server-side error occurred while processing the command. Original error: Could not sign with default certificate. Original error Command ''C:\\Program Files\\Java\\jdk1.8.0_131\\bin\\java.exe' -jar 'C:\\Program Files\\Appium\\resources\\app\\node_modules\\appium\\node_modules\\appium-adb\\jars\\sign.jar' 'C:\\Program Files\\Appium\\resources\\app\\node_modules\\appium\\node_modules\\appium-uiautomator2-server\\apks\\appium-uiautomator2-server-debug-androidTest.apk' --override' exited with code 1
该问题主要是证书签名错误,猜测是用了新版appium装了驱动之后,又换成旧版本的appium这个时候会出现两者的签名证书不一致导致认证错误。
解决方案一:
就是把appium-desktop换成新的,或者进入设备-应用管理-搜索appium相关程序,手动卸载掉再执行一遍脚本
解决方案二:
还有一种解释是运行appium-server时没有足够的权限,使用管理员去打开appium-server可以解决这个问题。
问题8
执行代码报错
该问题并不常见,主要是手机操作系统的问题
程序无法无法自动打开appiumsettings,那么我们可以手动打开appiumsettings服务(程序没有界面,会出现打开就闪退的错觉,这是正常现象)
然后再运行脚本
如果觉得此方法麻烦,那就只能更新系统或者更换手机解决了。。
原文地址:https://www.cnblogs.com/poloyy/p/12679327.html
- phalapi-进阶篇5(数据库读写分离以及多库使用)
- phalapi-进阶篇4(notrom进阶以及事务操作)
- 自动机器学习:利用遗传算法优化递归神经网络
- zephir-(8)类和对象1
- zephir-(4)基本语法
- zephir-(2)安装和初体验
- phalcon-入门篇8(Model层基础使用2)
- 封装、私有,一文掌握Python关键代码
- 基于TensorFlow的比较研究:神经网络优化算法
- Visual Studio 2008 每日提示(二十三)
- 应用层/安全层/传输层如何进行协议选型?
- 一分钟掌握数据库垂直拆分
- 在创建的Silverlight Control中使用图片
- 启用silverlight3的out of browser
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【大家的项目】Rust Base62 库学习和分析
- ES2020 中 Javascript 10 个你应该知道的新功能
- Webpack5 跨应用代码共享 - Module Federation
- 【Rust日报】2020-09-16 - Rust 2021 规划
- 精讲响应式WebClient第3篇-POST、DELETE、PUT方法使用
- C++的黑魔法: 用四种方式实现add!
- 精讲响应式WebClient第2篇-GET请求阻塞与非阻塞调用方法详解
- 算法篇:位运算异或的使用(一)
- 精讲响应式webclient第1篇-响应式非阻塞IO与基础用法
- k8s 二进制集群平滑升级 1.15.2升级至1.16.4
- 使用Java API进行tar.gz文件及文件夹压缩解压缩
- 动画 | 一文掌握 Flex 布局
- 精讲响应式WebClient第6篇-请求失败自动重试机制
- 算法篇:位运算基本操作
- Vue 项目中各种痛点问题及方案