美文网首页
appium环境配置的坑--总结

appium环境配置的坑--总结

作者: JOY_99 | 来源:发表于2018-09-30 15:00 被阅读0次

一、appium安卓7.0以上报错:Original error: Command failed: ps: uiautomator
https://blog.csdn.net/vany_/article/details/80425482
appium安卓7.0以上报错:Original error: Command failed: ps: uiautomator解决方法:
1.找到appium的安装目录下的adb.js文件,目录为:Appium\node_modules\appium\node_modules\appium-adb\lib
2.打开adb,js,找到如下代码

ADB.prototype.shell = function (cmd, cb) {
  if (cmd.indexOf('"') === -1) {
    cmd = '"' + cmd + '"';
  }
  var execCmd = 'shell ' + cmd;
  this.exec(execCmd, cb);
};

在上段代码后添加如下代码:

ADB.prototype.shell_grep = function (cmd, grep, cb) {
  if (cmd.indexOf('"') === -1) {
    cmd = '"' + cmd + '"';
  }
  var execCmd = 'shell ' + cmd + '| grep ' + grep;
  this.exec(execCmd, cb);
};

3.找到如下代码:

ADB.prototype.getPIDsByName = function (name, cb) {
  logger.debug("Getting all processes with '" + name + "'");
  this.shell("ps '" + name + "'", function (err, stdout) {
    if (err) return cb(err);
    stdout = stdout.trim();
    var procs = [];
    var outlines = stdout.split("\n");
    outlines.shift();
    _.each(outlines, function (outline) {
      if (outline.indexOf(name) !== -1) {
        procs.push(outline);
      }
    });
    if (procs.length < 1) {
      logger.debug("No matching processes found");
      return cb(null, []);
    }
    var pids = [];
    _.each(procs, function (proc) {
      var match = /[^\t ]+[\t ]+([0-9]+)/.exec(proc);
      if (match) {
        pids.push(parseInt(match[1], 10));
      }
    });
    if (pids.length !== procs.length) {
      var msg = "Could not extract PIDs from ps output. PIDS: " +
                JSON.stringify(pids) + ", Procs: " + JSON.stringify(procs);
      return cb(new Error(msg));
    }
    cb(null, pids);
  });
};

把如上代码注释掉,添加如下代码:

ADB.prototype.getPIDsByName = function (name, cb) {
  logger.debug("Getting all processes with '" + name + "'");
  this.shell_grep("ps", name, function (err, stdout) {
    if (err) {
      logger.debug("No matching processes found");
      return cb(null, []);
    }
    var pids = [];
    _.each(procs, function (proc) {
    var match = /[^\t ]+[\t ]+([0-9]+)/.exec(proc);
    if (match) {
    pids.push(parseInt(match[1], 10));
    }
    });
    if (pids.length !== procs.length) {
      var msg = "Could not extract PIDs from ps output. PIDS: " +
      JSON.stringify(pids) + ", Procs: " + JSON.stringify(procs);
      return cb(new Error(msg));
    }
    cb(null, pids);
  });
};

4.重启appium,问题解决

二、uiautomator 与android7.1.1不兼容 :Attempt to re-install io.appium.settings without first uninstalling.]
https://blog.csdn.net/Test_Sir_Cao/article/details/78559270
执行adb uninstall 包名(包名为报错提示中的包名)

相关文章

  • appium环境配置的坑--总结

    一、appium安卓7.0以上报错:Original error: Command failed: ps: uia...

  • Appium环境配置

    第一章 Appium环境配置(windows)一.Java环境配置二.Android环境配置三.Appium服务配...

  • appium总结

    前段时间重新研究了下appium的移动端测试简单写个总结 appium 安装 配置java、android开发环境...

  • appium环境配置总结

    最近更换了电脑,很多环境需要重新配置,也是一次对环境配置重新的认识。多次配置的过程中,思路更清晰、更能了解到为什么...

  • [全] Appium使用手册

    Appium使用手册 Appium介绍 Appium环境安装配置 Appium Api Appium键盘事件 An...

  • 已安装Xcode,但是appium-doctor提示Xcode

    输入命令appium-doctor检测appium环境配置,报错:AppiumDoctor ✖ Xcode is ...

  • Appium初探(842)

    Appium环境配置 这是个大坑,是个大坑,个大坑,大坑,坑... 网上的资料大多过时,或者不完整,走了很多弯路。...

  • 使用Appium Desktop +模拟机+RF进行自动化测试

    环境配置 1、Appium环境搭建 Appium 下载传送门密码ly8g ①下载直接安装 ②环境变量中,系统...

  • appium环境配置

    windows配置 略 Mac配置 安装Java 官网下载 Java,下载对应版本安装,完成后配置环境变量vi ~...

  • Appium环境配置

    注:appium安装到C盘,node.js安装到C盘一、安装node.js1、到官网下载node.js:https...

网友评论

      本文标题:appium环境配置的坑--总结

      本文链接:https://www.haomeiwen.com/subject/trewoftx.html