解决步骤:
1、修改源码文件-注释安装appiumSettings和unlock的两行代码
文件路径: C:\Program Files (x86)\Appium\node_modules\appium\lib\devices\android\android.js
image.png
2、路径:Program Files (x86)\Appium\node_modules\appium\node_modules\appium-adb\lib\adb.js
注释以下代码:
//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");
// _.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);
});
};
ADB.prototype.shell_grep = function (cmd, grep, cb) {
if (cmd.indexOf('"') === -1) {
cmd = '"' + cmd + '"';
}
var execCmd = 'shell ' + cmd + '| grep ' + grep;
this.exec(execCmd, cb);
};
网友评论