Appium 环境、配置、运行问题汇总

AndroidStudio、SDK 环境、配置、运行问题汇总
Appium环境配置(包括Mac 版本 、Windows版本)
此贴为Appium 问题汇总,大家可以把解决过的问题,抑或碰到的问题回复到下面。
为了浏览和搜索方便,希望大家能够按照楼上格式来写自己的问题。

问题描述:

  • 环境:
  • 移动端型号:
  • 移动端系统:
  • 问题复述:

报错信息:

原因以及解决方式(没有可以写无):

原因:

解决办法:

问题描述:

环境:Mac
移动端型号:虚拟机 emulator28
移动端系统:安卓9.0
问题复述:
同时打开uiautomatorviewer和desktop-appium报错

报错信息:

Error while obtaining UI hierarchy XML file: com.android.ddmlib.SyncException: Remote object doesn't exist!

原因以及解决方式(没有可以写无):

原因:

工具兼容问题

解决办法:

不要同时打开uiautomatorviewer和 appium-desktop

问题描述:

  • 环境:mac
  • 问题复述:
sudo npm install -g appium-doctor

使用npm安装 appium-doctor

报错信息:

Missing write access to /usr/local/lib/node_modules

原因以及解决方式(没有可以写无):

原因:

看报错信息,缺失对某些文件查看写入的权限。切入到具体目录发现有些文件缺失或者显示为替身无法进行操作

解决办法:

没有其他办法,卸载node.js及npm重新安装,把node、nod_module下的内容都删了

删除具体操作:

Mac OSX

  1. 删除/usr/local/lib中的所有node和node_modules
  2. 删除/usr/local/lib中的所有node和node_modules的文件夹
  3. 如果是从brew安装的, 运行brew uninstall node
  4. 检查~/中所有的local, lib或者include文件夹, 删除里面所有node和node_modules
  5. 在/usr/local/bin中, 删除所有node的可执行文件
  6. 最后运行以下代码:
    sudo rm /usr/local/bin/npm
    sudo rm /usr/local/share/man/man1/node.1
    sudo rm /usr/local/lib/dtrace/node.d
    sudo rm -rf ~/.npm
    sudo rm -rf ~/.node-gyp
    sudo rm /opt/local/bin/node
    sudo rm /opt/local/include/node
    sudo rm -rf /opt/local/lib/node_modules

then,重装node.js及npm及其他依赖

问题描述:

在部署appium环境时,踩了一个大坑,导致一直无法操作模拟器app

  • 环境:windows10
  • 移动端型号:mumu浏览器
  • 移动端系统:android6
  • 问题复述:在搭建环境完成进行初次运行时,遇到了大量报错,提示找不到device,找不到app或是adb监听端口无数据,下方为报错截图汇总
    我的实际步骤如下:
    • 命令行打开appium server

    • 打开模拟器

    • 执行代码

      代码如下:

from time import sleep
from appium import webdriver
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '6.0'
desired_caps['deviceName'] = 'emulator-5554'
desired_caps['appPackage'] = 'com.netease.onmyoji'
desired_caps['appActivity'] = 'com.netease.onmyoji.Launcher'
desired_caps['autoGrantPermissions'] = True
driver = webdriver.Remote(command_executor='http://127.0.0.1:4723/wd/hub', desired_capabilities=desired_caps)
driver.implicitly_wait(5)
sleep(10)
driver.quit()

报错信息

最终所有的报错信息都是500,无法连接,代表了无法操作模拟器

错误原因

归根结底,是因为win系统不会自动识别并连接模拟器,意思就是说即使我的服务端和客户端都是正常的,但adb监听也找不到device设备来运行,所以会报这个错

解决办法

  • 在命令行手动执行adb connect 127.0.0.1:7555,开启模拟器连接到电脑的端口,这时候,device设备会就出现在adb的监听中
  • 然后再执行刚才的代码,就可以连通了,当然,这是在appium doctor检查没问题的前提条件下,至此,win的环境都没有问题了