web-dev-qa-db-ja.com

Appium:例外:無効なサーバーインスタンスの例外が発生しました:インストールされているノードがありません

プログラムでappiumサーバーを起動しようとしましたが、エラーが発生しました。この問題を解決するには? nodejsがインストールされ、appiumがインストールされ、environemnt変数が適切に設定されています。私はmaven appium Java client 6.1.0およびSelenium 3.14.0を使用しています。助けてください。助けてくれて10億に感謝します。

コード:

try {
            File appDir = new File(System.getProperty("user.dir"));
            File app = new File(appDir, "..\\apk\\Flipkart.apk");

            // apk Capabilities
            DesiredCapabilities caps = new DesiredCapabilities();
            caps.setCapability("deviceName", "Sony Xperia Z2");
            caps.setCapability("BROWSER_NAME", "Android");
            caps.setCapability("platformVersion", "6.0");
            caps.setCapability(MobileCapabilityType.PLATFORM_NAME, Platform.Android);
            //caps.setCapability("udid", "WUJ01N4RQ3"); // DeviceId from "adb devices" command
            caps.setCapability("platformName", "Android");
            caps.setCapability("app", app.getAbsolutePath());
            caps.setCapability("appPackage", "com.flipkart.Android");
            caps.setCapability("appActivity","com.flipkart.Android.SplashActivity");

            // Appium Capabilities
            caps.setCapability("skipUnlock","true");
            caps.setCapability("noReset","false");

            appiumBuilder = new AppiumServiceBuilder();
            appiumBuilder.withIPAddress("127.0.0.1");
            appiumBuilder.usingPort(47233);
            appiumBuilder.withCapabilities(caps);
            appiumBuilder.withStartUpTimeOut(3, TimeUnit.MINUTES);
            appiumBuilder.withLogFile(new File(System.getProperty("user.dir") + "\\log\\appium.log"));
            appiumBuilder.withArgument(GeneralServerFlag.SESSION_OVERRIDE);
            appiumBuilder.withArgument(GeneralServerFlag.LOG_LEVEL, "DEBUG");
            appiumBuilder.withArgument(GeneralServerFlag.ASYNC_TRACE, "true");

            appiumServer = AppiumDriverLocalService.buildService(appiumBuilder);
            appiumServer.start();
            //new URL("http://127.0.0.1:47233/wd/hub")
            driver = new AndroidDriver<MobileElement>(appiumServer, caps);
            driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);

        } catch (Exception ex) {
            LogManager.logger.log(Level.INFO, "Exception: " + ex.getMessage());
        }

エラーログ:

情報:例外:無効なサーバーインスタンスの例外が発生しました:インストールされているノードがありません! NPM( https://www.npmjs.com/package/appium#using-node-js )経由でノードをインストールするか、Appiumアプリ( http:// appium。 io/downloads.html )2019年1月3日3:52:12 PM com.peterwkc.testManager.AndroidManager tearDown INFO:Exception:null

編集:私はappiumのソースコードがnodejsとappiumのインストールを検出できないと思います。

6
nicholas

私も最後に同じ問題に直面しました

  1. コマンドラインからノードサーバーインスタンスを実行してみてください。「node」と入力してEnterを押すだけです-サーバーが起動するはずです
  2. 別のターミナルウィンドウを開き、「ps eww」を実行して、実行中のプロセスのすべての詳細が適切かどうかを確認します
  3. 実行中のノードプロセスがここに表示されます。
  4. 「ps eww」を実行したのと同じコマンドウィンドウで「Kill​​all node」と入力して、「ノードサーバー」を強制終了します。
  5. 「ノード」ウィンドウには、プロセスが終了したことが表示されます。

正直なところ、スクリプトを実行すると、すべてがスムーズに進むはずです。

Appium-1.9.0 node-11.9.0 npm version-6.5.0 testscript-Javaツール-Eclipseプラットフォーム-iOS(10.14)

0
VSB