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

  • 相关阅读:
    如何实现Canvas图像的拖拽、点击等操作
    HTML5新增核心工具——canvas
    Java API 之 Object
    浅显回顾 Java 面向对象的最后方面的知识
    草叶集 | 在看惠特曼的大路之歌时的一些想法
    关于 static 和 final 的一些理解
    面向对象中的一些概念的理解
    关于前面知识的一些试题
    关于方法的一些浅见和对象的一些理解
    数组的一些应用场景
  • 原文地址:https://www.cnblogs.com/xiyuan2016/p/7359732.html
Copyright © 2011-2022 走看看