【问题标题】:Is there a way I can get appium to start within the code?有没有办法让 appium 在代码中启动?
【发布时间】:2016-02-22 02:06:59
【问题描述】:

我正在尝试在我使用 Java 编写的代码中启动 appium 服务器。 我尝试了以下命令,但它不起作用:

appium = Runtime.getRuntime().exec("/usr/local/bin/appium");

【问题讨论】:

  • 请详细说明“它不起作用”。什么错误?
  • 没有错误,至少我看不到一个。只是appium服务器没有启动。就好像命令传了但是没有执行一样。

标签: appium


【解决方案1】:

为了在 OS X 上启动 Appium,您应该包含“open”并在末尾添加一个“.app”。

例如:

appium = Runtime.getRuntime().exec("open /Applications/Appium.app");

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,但我使用的是 Ruby。 问题不在于服务器没有启动,服务器正在运行,但是当脚本执行时它失败了,就像服务器没有运行一样。 对我有用的是将 Appium 作为一个单独的线程启动。 使用 ruby​​ 是这样的:

    Thread.new{run_command('avm use 1.3.4 --no-reset &',1,5,false)}    
    

    我想应该有类似的东西可以用 Java 完成。

    【讨论】:

      【解决方案3】:

      以下步骤对我来说效果很好

      • 按照此处安装 Node 和 npm 的步骤进行操作。 (http://blog.teamtreehouse.com/install-node-js-npm-windows)

      • 命令提示符:npm install -g appium@1.3.7#for latest

      • 确保在系统环境变量中包含安装 Appium 的路径(我的是 C:UsersXXXAppDataRoamingnpmnode_modulesappiu

      • 在 BeforeTest 中添加以下代码以编程方式启动 appium 服务器

        CommandLine command = new CommandLine("cmd");
        command.addArgument("/c");
        command.addArgument("appium");
        DefaultExecuteResultHandler resultHandler = new DefaultExecuteResultHandler();
        DefaultExecutor executor = new DefaultExecutor();
        executor.setExitValue(1);
        executor.execute(command, resultHandler); 
        

      【讨论】:

        【解决方案4】:
        public class StartandEndServer {
            public static void startServer() throws ExecuteException, IOException, InterruptedException{
                CommandLine command = new CommandLine("cmd");  
                command.addArgument("/c"); 
                command.addArgument("C:/Progra~2/nodejs/node.exe");  
                command.addArgument("C:/Progra~2/Appium/node_modules/appium/bin/appium.js");  
                command.addArgument("--address", false);  
                command.addArgument("127.0.0.1");  
                command.addArgument("--port", false);  
                command.addArgument("4723");  
                //command.addArgument("--no-reset");  
                command.addArgument("--full-reset", false);
        
                DefaultExecuteResultHandler resultHandler = new DefaultExecuteResultHandler();  
                DefaultExecutor executor = new DefaultExecutor();  
                executor.setExitValue(1);  
                executor.execute(command, resultHandler);  
        
                Thread.sleep(5000);
            }
        }
        

        【讨论】:

          猜你喜欢
          • 2015-01-19
          • 2021-05-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-02-05
          • 2020-08-22
          • 2019-06-17
          相关资源
          最近更新 更多