【问题标题】:AppiumServerHasNotBeenStartedLocallyException: The local appium server has not been startedAppiumServerHasNotBeenStartedLocallyException:本地appium服务器尚未启动
【发布时间】:2018-09-11 15:02:42
【问题描述】:

我正在尝试从 Java 以编程方式启动 Appium 服务器 (操作系统:Windows7 x64)

我用来启动 Appium 服务器的代码是:


  public void startServer() {
    //Set Capabilities
    cap = new DesiredCapabilities();
    cap.setCapability("noReset", "false");

    //Build the Appium service
    builder = new AppiumServiceBuilder();
    builder.withIPAddress("127.0.0.1");
    builder.usingPort(4723);
    builder.withCapabilities(cap);
    builder.withArgument(GeneralServerFlag.SESSION_OVERRIDE);
    builder.withArgument(GeneralServerFlag.LOG_LEVEL, "error");

    //added by myself:
    builder.usingDriverExecutable(new File("C:/node/node.exe"));
    builder.withAppiumJS(new File("C:/Users/[user]/AppData/Roaming/npm/node_modules/appium/lib/appium.js"));


    //Start the server with the builder
    service = AppiumDriverLocalService.buildService(builder);
    service.start();
}

遇到了异常

Exception in thread "main" io.appium.java_client.service.local.AppiumServerHasNotBeenStartedLocallyException: The local appium server has not been started. The given Node.js executable: C:\node\node.exe Arguments: [C:\Users\Dima\AppData\Roaming\npm\node_modules\appium\lib\appium.js, --port, 4723, --address, 127.0.0.1, --log-level, error, --session-override, --default-capabilities, {\"noReset\": \"false\"}] 

进程输出:C:\Users[user]\AppData\Roaming\npm\node_modules\appium\lib\appium.js:1 (function (exports, require, module, __filename, __dirname) { import _ from 'lodash'; ^^^^^^

SyntaxError: Unexpected token import
at createScript (vm.js:80:10)
at Object.runInThisContext (vm.js:139:10)
at Module._compile (module.js:616:28)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
at Function.Module.runMain (module.js:693:10)
at startup (bootstrap_node.js:188:16)
at bootstrap_node.js:609:3

我尝试了各种方法从源启动 Appium 服务器,但第二种原因相同,但第三种原因导致错误

有什么想法吗?在此先感谢大家!

【问题讨论】:

  • 将 appium.js 更改为 main.js - 相同的位置。
  • 哦,这是我的代码错误。

标签: java node.js appium


【解决方案1】:

看一下官方文档: https://github.com/appium/java-client/blob/master/docs/The-starting-of-an-app-using-Appium-node-server-started-programmatically.md

确保您的 Appium 环境设置正确且 appium 服务/客户端版本兼容。

【讨论】:

    【解决方案2】:

    它确实在代码中出错。固定方法是:

         public static String runAppiumService(int appiumPort) {
    
            //Build parameters for appium server:
            AppiumServiceBuilder appiumServiceBuilder = new AppiumServiceBuilder();
            appiumServiceBuilder.usingPort(appiumPort)
                    .withIPAddress(APPIUM_IP)
                    .withAppiumJS(new File(getAppiumJsPath()))
                    .withArgument(GeneralServerFlag.SESSION_OVERRIDE)
                    .withLogFile(new File(System.getProperty("user.dir") + "/target/resources/appium_server_logs" + Thread.currentThread().getId()));
            AppiumDriverLocalService service = AppiumDriverLocalService.buildService(appiumServiceBuilder);
            service.start();
    }
    

    【讨论】:

      【解决方案3】:
      public class ServerManager {
          AppiumDriverLocalService service;
          public static void main(String args[]) {
              ServerManager sm = new ServerManager();
              sm.startServer();
              
          }
          public void startServer() {
              final DesiredCapabilities cap = new DesiredCapabilities();
              //Set Capabilities
              
              cap.setCapability("noReset", "false");
      
              //Build the Appium service
              AppiumServiceBuilder builder = new AppiumServiceBuilder();
              builder = new AppiumServiceBuilder();
              builder.withIPAddress("127.0.0.1");
              builder.usingPort(4723);
              builder.withCapabilities(cap);
              builder.withArgument(GeneralServerFlag.SESSION_OVERRIDE);
              builder.withArgument(GeneralServerFlag.LOG_LEVEL,"error");
      
              //Start the server with the builder
              service = AppiumDriverLocalService.buildService(builder);
              service = AppiumDriverLocalService.buildService(builder);
              service.start();
          }
      
          public void stopServer() {
              service.stop();
          }
      

      }

      【讨论】:

        猜你喜欢
        • 2022-07-25
        • 2016-09-09
        • 2017-03-21
        • 2020-09-22
        • 2016-05-13
        • 1970-01-01
        • 2019-06-19
        • 1970-01-01
        • 2017-05-18
        相关资源
        最近更新 更多