无法启动Appium会话,错误是:错误:'java -version'失败

时间:2015-08-06 00:54:37

标签: appium

嘿,伙计们,所以我基本上已经完成了需要做的事情来获得appium。 已安装JDK 1.8(最新版本) 已安装Android SDK 更新了环境变量 安装appium 1.4(最新版本) 安装Eclipse并在将手机连接到我的电脑后创建一个新的java项目。

我将.apk文件导入到项目中,当我设置所需的功能时。我的代码中没有任何错误。启动appium后,我运行我的代码,我收到以下错误:

  

启动节点服务器   警告:Appium支持节点版本< 0.12已被弃用,将来的版本将被删除。请升级!   info:欢迎来到Appium v​​1.4.0(REV 8f63e2f91ef7907aed8bda763f4e5ca08e86970a)   info:Appium REST http接口监听器在127.0.0.1:4723上启动   info:[debug]非默认服务器args:{“address”:“127.0.0.1”,“logNoColors”:true,“platformName”:“Android”,“platformVersion”:“18”,“automationName”:“Appium “}   info:Console LogLevel:debug   信息: - > POST / wd / hub / session {“desiredCapabilities”:{“app”:“C:\ Users \ svaradar \ workspace \ LiftMasterAndroidApp \ LM_APK \ LiftMaster.apk”,“appPackage”:“com.chamberlain.myq.chamberlain”, “appActivity”: “com.chamberlain.myq.activity.LoginActivity”, “browserName”: “”, “platformName”: “机器人”, “版本”: “5.0”, “设备名”: “e6feb2e2”}}   info:客户端用户代理字符串:Apache-HttpClient / 4.4.1(Java / 1.8.0_51)   info:[debug]提供了以下所需功能,但appium无法识别。它们将被传递给在此服务器上运行的任何其他服务。 :版本   info:[debug]使用所需大写的本地应用程序:C:\ Users \ svaradar \ workspace \ LiftMasterAndroidApp \ LM_APK \ LiftMaster.apk   info:[debug]创建新的appium会话27b1f84e-556e-4881-8afc-d9ea50941f12   错误:无法启动Appium会话,错误是:错误:'java -version'失败。错误:产生ENOENT   info:启动android appium   info:[debug]获取Java版本   info:[debug]清理android对象   info:[debug]清理appium会话   info:[debug]错误:'java -version'失败。错误:产生ENOENT       在[object Object]。 (C:\ Users \用户svaradar \桌面\自动化\ Appium \ node_modules \ appium \ lib中\设备\机器人\机器人-common.js:1057:17)       在exithandler(child_process.js:633:7)       在ChildProcess.errorhandler(child_process.js:649:5)       在ChildProcess.EventEmitter.emit(events.js:95:17)       在Process.ChildProcess._handle.onexit(child_process.js:795:12)   info:[debug]响应客户端错误:{“status”:33,“value”:{“message”:“无法创建新会话。(原始错误:'java -version'失败。错误:spawn ENOENT)“,”origValue“:”'java -version'失败。错误:产生ENOENT“},”sessionId“:null}   info:< - POST / wd / hub / session 500 17.573 ms - 208

这是我的代码:

package LiftMasterLaunch;

import java.net.MalformedURLException;
import java.net.URL;
import java.io.File;


import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.junit.*;


import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.AndroidElement;


public class openApp {

@SuppressWarnings("rawtypes")
private AppiumDriver driver;


@SuppressWarnings("rawtypes")
@Before
public void setUp() throws Exception{


    File classpathRoot = new File(System.getProperty("user.dir"));
    File appDir = new File(classpathRoot, "/LM_APK" );
    File app = new File(appDir, "LiftMaster.apk" );

    DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setCapability(CapabilityType.BROWSER_NAME, "");
    capabilities.setCapability("platformName","Android");
    capabilities.setCapability(CapabilityType.VERSION, "5.0");
    capabilities.setCapability("deviceName", "e6feb2e2");
    capabilities.setCapability("app", app.getAbsolutePath());
    capabilities.setCapability("appPackage", "com.chamberlain.myq.chamberlain");
    capabilities.setCapability("appActivity", "com.chamberlain.myq.activity.LoginActivity");
    driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);


}

@Test
public void testApp() throws Exception {

    driver.findElement(By.xpath(("//android.widget.EditText[@text='Account Email']"))).sendKeys("Swaroopvaradarajan@gmail.com");

}


@After
public void tearDown() throws Exception {
    driver.quit();
}

}

2 个答案:

答案 0 :(得分:1)

在我的情况下,解决方案是在Appium和Android路径之前在PATH中设置java。

答案 1 :(得分:0)

我解决了这个问题并且正在更新此问题以防其他人遇到此问题。

我所要做的就是为系统变量下面的Path添加“%SystemRoot%\ system32”。这解决了问题。