appium测试遇到的问题总结

1、Could not sign with default certificate.

Original error: Could not sign with default certificate. 
Original error Command ''E:\Program Files (x86)\Java\jdk1.8.0_45\bin\java.exe' -jar '
C:\Program Files (x86)\Appium\resources\app\node_modules\appium-adb\jars\sign.jar' '
C:\Program Files (x86)\Appium\resources\app\node_modules\appium-uiautomator2-server\apks\appium-uiautomator2-server-debug-androidTest.apk
' --override' exited with code 1

解决办法

  1. 通过日志,查到apk的文件路径中存在该apk,通过升级appium_desktop (cmd命令:npm update -g appium ),后重新运行,依旧会出现这个提示

  2. 以管理员身份运行该软件后解决该问题:右键appium图标,以管理员运行,然后就解决了

2、adb检测不到设备

解决:

1.检查手机驱动是否安装(win10系统不需要),去官网下载手机驱动或者电脑下载手机助手来辅助安装手机驱动,安装完成后卸载手机助手(防止接入手机时抢adb端口造成干扰)

2.打开手机设置,进入开发者选项,打开USB调试功能

3.重新插拔手机USB,选择接受调试,接受验证指纹

 

3、adb安装应用提示权限不够

解决:部分安卓手机开发者选项需要修改USB调试

红色画圈的设置都打开

蓝色花圈的设置关闭

4、代码报错:找不到连接的安卓设备

解决:检查代码中平台版本号是否填写正确

 

5、出现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环境变量配置到这里就可以了

 

6、部分手机已经运行过一次appium脚本,手机上已经安装过ui2驱动,但是每次执行的时候仍然会提示是否安装UI2,如图

这个问题的原因是,只要设置了自动化的驱动为UI2那么appium再每次运行测试脚本的时候都默认的重新安装一下UI2到手机上,

要解决这个问题可以参考问题3,设置相关权限,再进行运行一次看下是否还会提示。

如果还有提示可以在代码的配置项中再增加一个配置,跳过UI2的安装:

skipServerInstallation 设置为True

该配置项配合UI2使用的,也就是说配置项指定了automationName  为 UiAutomator2

或者使用的是appium1.15版本以上可以添加这个配置。

注意:如果你手机没有装UI2或者想重新装一次,就不要加这个配置项

7、运行代码提示找不到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

 

8、运行时代码报错:

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相关程序,手动卸载掉再执行一遍脚本

备注:解决不了的话用方法一

9、执行代码报错

该问题并不常见,主要是手机操作系统的问题

程序无法无法自动打开appiumsettings,那么我们可以手动打开appiumsettings服务(程序没有界面,会出现打开就闪退的错觉,这是正常现象)

然后再运行脚本

如果觉得此方法麻烦,那就只能更新系统或者更换手机解决了。。

参考链接:http://vip.ytesting.com/qa01Controller.do?qa01Article&id=ff808081715a868601715dd9edc3010a