测试人社区

appium报错以及解决方法集合(持续更新)

Appium安装 Appium环境配置(包括Mac 版本 、Windows版本)

推荐版本:

  • appium 1.15.1
  • JDK:1.8
  • tools:28-29

appium提示: INSTALL_PARSE_FAILED_NO_CERTIFICATES

解决方法:

新增启动app参数:‘automationName’ = ‘UiAutomator1’


appium提示:Error starting Appium server:listen EADDRINUSE 0.0.0.0.4723

image

解决方法:

因4723端口被占用,更换端口启动即可


appium提示:Original error: Could not find ‘aapt’ in PATH. Please set the ANDROID_HOME or ANDROID_SDK_ROOT environment variables to the corect Android SDK root directory path.

解决方法:配置环境变量ANDROID_HOME,配置至sdk根目录下


通过appium启动手机自带浏览器,报错:

selenium.common.exceptions.WebDriverException: Message: An unknown server-side error occurred while processing the command. Original error: Error getting device API level. Original error: Error executing adbExec. Original error: ‘Command ‘C:\software\android-sdk_r24.4.1-windows\android-sdk-windows\platform-tools\adb.exe -P 5037 -s 127.0.0.1:7555 shell getprop ro.build.version.sdk’ timed out after 20000ms’. Try to increase the 20000ms adb execution timeout represented by ‘adbExecTimeout’ capability

解决方法:本地chromedriver版本与手机内浏览器版本不匹配,下载对应版本即可

chromedriver下载 chromedriver下载地址与webview自动化关键代码

mumu模拟器已启动,但adb device无信息

解决方法:

【win版】
adb connect 127.0.0.1:7555
adb shell
【mac版】
adb kill-server && adb server && adb shell


启动appium报错:error: uncaughtException: primordials is not defined date=Thu Jul 23 2020 14:00:40 GMT+0800 (GMT+08:00)

解决方法:检查appium、node、java版本

appium -v
node -v
java -version
安装匹配的版本
推荐appium1.15.1、node12、java1.8


appium日志内报错:

annot use apksigner tool for signature verification. Original error: Command '/Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/home/bin/java -Xmx1024M -Xss1m -jar /Users/xxx/Library/Android/sdk/build-tools/30.0.1/lib/apksigner.jar verify --print-certs /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-v4.5.5.apk' exited with code 1
[ADB] Defaulting to verify.jar

解决方法:

卸载build tools 30 版本,安装28或者29版本
原因:build tools 30版本需要jdk1.8以上版本才能编译


appium日志报错:

Stderr: 'java.lang.SecurityException: Permission Denial: starting Intent 

解决办法:

  • adb shell am start -n 包名/activity #检查现有activity是否可启动app

    • demo:adb shell am start -n com.tencent.wework/.launch.LaunchSplashActivity
  • adb logcat |grep -i ‘activitymanager’ 检查activity是否正确


appium报错

An unknown server-side error occurred while processing the command. Original error; Cannot read property toLowerCase' of undefined

解决办法:

  • 检查Capabilities参数拼写,上述错误是因为platformName对应参数拼写有误
3 Likes

支持老师,希望不要断更 :+1:
后续建议可以进行分类,比如安装appium desktop的各种报错,容易忽略的细节导致的报错等

启动报错

appium日志报Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]

sdk的build-tools版本大于等于30
  • 签名报错,最常见的原因是sdk的build-tools版本太高,build-tools从版本30开始,签名jar包使用jdk8运行就会报版本过低,导致初始化用的软件签名只能调用旧的签名方式,签名不匹配可能会导致安装时报错
  • 如果是命令行安装的sdk,可以参照官网的方法 https://developer.android.com/studio/command-line/sdkmanager 通过sdkmanager来卸载高版本的build-tools 安装29版本的build-tools
  • 如果是通过Android Studio安装的,可以按图中方法进行版本修改
  • 替换完版本之后,可能手机上还缓存有旧版本未签名的安装包,需要去手动清理掉残留安装包,不然程序发现缓存后就不会上传新版本签名过的安装包

appium日志报Closing session, cause was ‘Unexpected shutdown’

  • 去安装目录:\node_modules\appium\build\lib\找到appium.js文件,注释掉//this.attachUnexpectedShutdownHandler(d, innerSessionId);

特殊型号手机问题

writing to settings requires:android.permission.WRITE_SECURE_SETTINGS

  • 小米手机:在开发者选项里,把“USB调试(安全设置)"打开,允许USB调试修改权限或模拟点击。
  • OPPO手机:在开发者选项里,把"禁止权限监控"打开即可

appium定位报错

invalid argument: invalid locator

  • https://github.com/appium/appium/issues/13306
  • 可以添加一个参数 "chromeOptions": {'w3c': False}
  • 或者改用标准定位模式:CSS Selector / Xpath
  • 因为从75版本开始 chromedriver默认启用w3c模式,导致非w3c模式的定位方式默认都不支持了。

appium desktop

[INSTALL_PARSE_FAILED_NO_CERTIFICATES]

  • appium desktop有部分版本,appium-uiautomator2-server-debug-androidTest.apk文件有问题,会导致签名之后往手机推送安装时报签名问题。可以直接找正常的客户端拷贝对应apk覆盖即可(注意文件权限问题~!!)
1 Like