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

  • 相关阅读:
    新一代MQ apache pulsar的架构与核心概念
    Flutter使用fluwx实现微信分享
    BZOJ3622 已经没有什么好害怕的了 动态规划 容斥原理 组合数学
    NOIP2016提高组Day1T2 天天爱跑步 树链剖分 LCA 倍增 差分
    Codeforces 555C Case of Chocolate 其他
    NOIP2017提高组Day2T3 列队 洛谷P3960 线段树
    NOIP2017提高组Day2T2 宝藏 洛谷P3959 状压dp
    NOIP2017提高组Day1T3 逛公园 洛谷P3953 Tarjan 强连通缩点 SPFA 动态规划 最短路 拓扑序
    Codeforces 873F Forbidden Indices 字符串 SAM/(SA+单调栈)
    Codeforces 873E Awards For Contestants ST表
  • 原文地址:https://www.cnblogs.com/xiyuan2016/p/7359732.html
Copyright © 2011-2022 走看看