我将.apk文件导入到项目中,当我设置所需的功能时。我的代码中没有任何错误。启动appium后,我运行我的代码,我收到以下错误:
启动节点服务器 警告:Appium支持节点版本< 0.12已被弃用,将来的版本将被删除。请升级! info:欢迎来到Appium v1.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();
}
}
答案 0 :(得分:1)
在我的情况下,解决方案是在Appium和Android路径之前在PATH中设置java。
答案 1 :(得分:0)
我解决了这个问题并且正在更新此问题以防其他人遇到此问题。
我所要做的就是为系统变量下面的Path添加“%SystemRoot%\ system32”。这解决了问题。