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对应参数拼写有误

appium报错:Locator Strategy ‘css selector’ is not supported for this session

解决方法:

  • selenium是将浏览器原生的API封装成WebDriver API ,webdriver 是基于 http协议的;
    appium是 webdriver 协议添加对移动设备自动化api扩展而成的,基于tcp/ip协议(使用了socket接口);

  • 因此在使用webdriver时要注意引用来源:

  • web自动化: from selenium import webdriver

  • app自动化: from appium import webdriver

3 个赞

支持老师,希望不要断更 :+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安装的,可以按图中方法进行版本修改
    644dc60e-842a-498d-85d2-6bc4b0b26025-4421845
  • 替换完版本之后,可能手机上还缓存有旧版本未签名的安装包,需要去手动清理掉残留安装包,不然程序发现缓存后就不会上传新版本签名过的安装包

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

appium desktop

[INSTALL_PARSE_FAILED_NO_CERTIFICATES]

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

安装 appium server 端报错

根据相关提示删除对应文件

222
再安装

相关
npm install appium@1.22 -g --chromedriver-skip-install 这个跳过chromedriver的安装
npm config set registry https://registry.npm.taobao.org 这个镜像,老师有讲
npm init 这个初始化

求助!!!!目前appium服务启动不了模拟器上的app
‘Could not find aapt Please set the ANDROID_HOME environment variable with the Android SDK root directory path.’. Manually uninstalling the application with package id ‘io.appium.settings’ may help. Expect some Appium features may not work as expected unless this problem is fixed.
实际上已经配置了环境变量ANDROID_HOME至 sdk根目录下

已解决,环境变量配置的没有问题;appium无法启动app的原因是,appium服务的ip地址信息配置错误,导致appium服务端与模拟器上的app无法正常通信