zoukankan      html  css  js  c++  java
  • Appium python

    1、运行报错:FAILED_ALREADY_EXISTS: Attempt to re-install io.appium.android.ime without first uninstalling.

    解决方法:卸载手机上appium自动安装的软件
    → 命令行运行:adb uninstall io.appium.android.ime

    2、运行报错:Original error: Command failed: C:Windowssystem32cmd.exe /s /c "E:SDKandroid-sdk-windowsplatform-toolsadb.exe -s e94b6920 shell "ps 'uiautomator'""

    解决方法 :找到appium的安装目录下的adb.js文件,目录为:Appium ode_modulesappium ode_modulesappium-adblib

    → 打开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(" ");
    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 = /[^ ]+[ ]+([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 = /[^ ]+[ ]+([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);
    });
    };

    → 重启appium

  • 相关阅读:
    Scrapy学习-18-去重原理
    Scrapy学习-17-暂停和重启
    Scrapy学习-16-动态网页技术
    Scrapy学习-15-降低被识别为爬虫的方法
    Scrapy学习-14-验证码识别
    Scrapy学习-13-使用DownloaderMiddleware设置IP代理池及IP变换
    Scrapy学习-12-使用DownloaderMiddleware随机修改User-Agent
    Scrapy学习-11-Selector对象使用
    使用grunt完成requirejs的合并压缩和js文件的版本控制
    nodemailer中的几个坑
  • 原文地址:https://www.cnblogs.com/xiyuan2016/p/7359732.html
Copyright © 2011-2022 走看看