appium android测试碰到的坑

Appium 1.4.13在Android 7上有bug

报错:Failure [INSTALL_FAILED_ALREADY_EXISTS: Attempt to re-install io.appium.settings without firstuninstalling.]

原解决方案见:https://discuss.appium.io/t/support-version-android-n/10206/5

总结自己的解决方案:

原因:

1. adb.js 中1035 行this.shell("ps '" + name + "'", function (err, stdout) {

对应执行的指令是ps 'uiautomator', Android7不支持这个指令格式,所以执行结果是bad pid'uiautomator'

目前Appium未对此进行处理,所以需要修改此指令的执行方式

即将

this.shell("ps '" + name + "'", function (err, stdout) {

if (err) return cb(err);

替换成

this.shell_grep("ps", name, function (err, stdout) {

if (err) {

logger.debug("No matching processes found");

return cb(null, []);

}

并增加上面用到的shell_grep函数:

ADB.prototype.shell_grep = function (cmd, grep, cb) {

if (cmd.indexOf('"') === -1) {

cmd = '"' + cmd + '"';

}

var execCmd = 'shell ' + cmd + '| grep ' + grep;

this.exec(execCmd, cb);

};

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容