Appium错误收集及解决

  • 错误1:selenium.common.exceptions.WebDriverException: Message: An unknown server-side error occurred while processing the command.

  • 错误2:同一段脚本比如超级计算器,通过appium-desktop启动的Server能正常执行,但是通过 appium 命令行启动的Server,执行脚本,超级计算器已经被脚本打开了,但是接着报下面的错误
    selenium.common.exceptions.InvalidSessionIdException: Message: A session is either terminated or not started

关于错误1和错误2的原因:是因为之前通过 sudo cnpm install [email protected]的版本的时候有下面截图的报错,没有解决,该错误是由于权限问题导致的。
解决:彻底卸载mac上的node软件和appium,然后通过brew install node,再通过npm install -g [email protected]的版本后正常了,安装过程中也没有报错,参考我的关于Mac appium 环境配置博客

  • MIUI 11 关闭USB安装APP安装询问的提示弹窗

    大多数手机关闭USB安装提示弹窗很简单,但是小米手机很麻烦,很多人不知道怎么关闭,关闭USB安装弹窗,其实执行以下几步即可:
    1. 设置->开发者选项中 -> 启动MIUI优化 ->关闭
    2. 设置 -> 授权管理 -> 右上角设置按钮 -> USB安装管理 ->关闭
    因为关闭了MIUI优化,有些界面,图标很难看,所以在完成第二步设置后,可以把MIUI优化再打开
  • 错误3:appium-doctor --ios 检测环境报错 Error running xcrun simctl

解决:打开xcode-偏好设置-locations,下拉选上命令行工具

  • 错误4: UnhandledPromiseRejectionWarning: Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/appium/node_modules/appium-selendroid-driver/2020325-4335-fa47af.9254'

解决:其实按照错误1或者错误2的解决方式,以普通模式安装,不会遇到这个错误。
如果不是以普通模式安装,即使你解决了这个错误,在后续的过程中还会遇到其他类似权限的问题。因此继续强烈建议以普通模式安装并配置环境

错误5:执行脚本的时候报An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/Users/qiaoersun/Library/Android/sdk/platform-tools/adb -P 5037 -s 49c08cd4 shell settings delete global hidden_api_policy_pre_p_apps' exited with code 255'; Stderr: 'Security exception: Permission denial: writing to settings requires:android.permission.WRITE_SECURE_SETTINGS java.lang.SecurityException: Permission denial: writing to settings requires:android.permission.WRITE_SECURE_SETTINGS at com.android.providers.settings.SettingsProvider.enforceWritePermission(SettingsProvider.java:2050) at com.android.providers.settings.SettingsProvider.mutateGlobalSetting(SettingsProvider.java:1256) at com.android.providers.settings.SettingsProvider.deleteGlobalSetting(SettingsProvider.java:1239) at com.android.providers.settings.SettingsProvider.call(SettingsProvider.java:476) at android.content.ContentProvider.call(ContentProvider.java:2161) at android.content.ContentProvider\(Transport.call(ContentProvider.java:477) at com.android.providers.settings.SettingsService\)MyShellCommand.deleteForUser(SettingsService.java:399) at com.android.providers.settings.SettingsService$MyShellCommand.onCommand(SettingsService.java:281) at android.os.ShellCommand.exec(ShellCommand.java:104) at com.android.providers.settings.SettingsService.onShellCommand(SettingsService.java:49) at android.os.Binder.shellCommand(Binder.java:881) at android.os.Binder.onTransact(Binder.java:765) at android.os.Binder.execTransactInternal(Binder.java:1021) at android.os.Binder.execTransact(Binder.java:994)'; Code: '255'

原因: 首先是定位到权限问题,刚开始以为是电脑权限有问题了,网上一顿找,也有人报这个错,但是都没有解决方案。最后找了个其他安卓手机试了一下,是正常的,问题就定位到了可能是手机的某个设置问题,应该收手机的某个功能拦截了adb的执行。检查了开发者选项设置,开启开发者选项、USB调试、USB安装都是正常的

解决:各种搜索中,无意间看见“安全调试模式导致小米手机adb shell命令没反应”的帖子。https://jingyan.baidu.com/article/39810a23c7d0a1f737fda627.html。于是打开了 “USB调试(安全设置)",这个功能会允许通过USB调试修改权限或者模拟点击的功能。再次执行脚本正常了。

猜你喜欢

转载自www.cnblogs.com/victorm/p/appium_error.html