加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

command failed shell "ps 'uiautomator&#3

发布时间:2020-12-16 01:55:08 所属栏目:安全 来源:网络整理
导读:1、找到appium的安装目录下的adb.js文件,目录为:Appiumnode_modulesappiumnode_modulesappium-adblib 2、打开adb.js,找到如下代码: ADB.prototype.shell = function (cmd,cb) { if (cmd.indexOf(‘"‘) === -1) { cmd = ‘"‘ + cmd + ‘"‘; } var

1、找到appium的安装目录下的adb.js文件,目录为:Appiumnode_modulesappiumnode_modulesappium-adblib
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);
};


再找到如下代码:

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,stdout) {
    if (err) {
      logger.debug("No matching processes found");
      return cb(null,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) + ",pids);
  });
};


3、重启appium

问题解决。转载原文:https://blog.csdn.net/pjl6523853/article/details/72886048

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读