Java Appium测试用例引发异常
我正在尝试使用eclipse氧气运行我的第一个appium测试用例。 我一步一步地学习教程 我的实际代码是Java Appium测试用例引发异常,java,eclipse,appium-android,android-sdk-manager,appium-desktop,Java,Eclipse,Appium Android,Android Sdk Manager,Appium Desktop,我正在尝试使用eclipse氧气运行我的第一个appium测试用例。 我一步一步地学习教程 我的实际代码是 import java.net.MalformedURLException; import java.net.URL; import org.openqa.selenium.remote.CapabilityType; import org.openqa.selenium.remote.DesiredCapabilities; import io
import java.net.MalformedURLException;
import java.net.URL;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.MobileElement;
import io.appium.java_client.android.AndroidDriver;
public class AppiumTest {
public static void main(String[] args) {
//Set the Desired Capabilities
DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability("deviceName", "SM-T211");
caps.setCapability("udid", "41022b138d311100"); //Give Device ID of your mobile phone
caps.setCapability("platformName", "Android");
caps.setCapability(CapabilityType.VERSION, "4.4.2");
caps.setCapability("appPackage", "com.isinolsun.app");
caps.setCapability("appActivity", "com.isinolsun.app.activities.OnBoarderActivity");
caps.setCapability("noReset", "true");
//Instantiate Appium Driver
try {
AppiumDriver<MobileElement> driver = new AndroidDriver<MobileElement>(new URL("http://0.0.0.0:4723/wd/hub"), caps);
driver.closeApp();
} catch (MalformedURLException e) {
System.out.println(e.getMessage());
}
}
import java.net.MalformedURLException;
导入java.net.URL;
导入org.openqa.selenium.remote.CapabilityType;
导入org.openqa.selenium.remote.DesiredCapabilities;
导入io.appium.java_client.AppiumDriver;
导入io.appium.java_client.MobileElement;
导入io.appium.java_client.android.AndroidDriver;
公共类应用程序测试{
公共静态void main(字符串[]args){
//设置所需的功能
DesiredCapabilities=新DesiredCapabilities();
caps.setCapability(“deviceName”、“SM-T211”);
caps.setCapability(“udid”,“41022b138d311100”);//给出您手机的设备ID
caps.setCapability(“平台名”、“安卓”);
caps.setCapability(CapabilityType.VERSION,“4.4.2”);
caps.setCapability(“appPackage”、“com.isinolsun.app”);
caps.setCapability(“appActivity”、“com.isinolsun.app.activities.OnBoarderActivity”);
caps.setCapability(“noReset”、“true”);
//实例化应用程序驱动程序
试一试{
AppiumDriver=新的AndroidDriver(新URL(“http://0.0.0.0:4723/wd/hub"(大写),;
driver.closeApp();
}捕获(格式错误){
System.out.println(e.getMessage());
}
}
我用的是真正的设备
已安装Appium桌面应用程序。
当我运行程序时,它会在这一行给我异常
AppiumDriver<MobileElement> driver = new AndroidDriver<MobileElement>(new URL("http://0.0.0.0:4723/wd/hub"), caps);
driver.closeApp();
} catch (MalformedURLException e) {
System.out.println(e.getMessage());
}
AppiumDriver驱动程序=新的AndroidDriver(新的URL(“http://0.0.0.0:4723/wd/hub"(大写),;
driver.closeApp();
}捕获(格式错误){
System.out.println(e.getMessage());
}
例外消息是
Exception in thread "main" java.lang.NoClassDefFoundError: javax/websocket/DeploymentException
at io.appium.java_client.android.ListensToLogcatMessages.<clinit>(ListensToLogcatMessages.java:34)
at com.appiumtest.firsttestscript.AppiumTest.main(AppiumTest.java:27)
Caused by: java.lang.ClassNotFoundException: javax.websocket.DeploymentException
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 2 more
线程“main”java.lang.NoClassDefFoundError中的异常:javax/websocket/DeploymentException
位于io.appium.java_client.android.ListensToLogcatMessages.(ListensToLogcatMessages.java:34)
位于com.appiumtest.firsttestscript.appiumtest.main(appiumtest.java:27)
原因:java.lang.ClassNotFoundException:javax.websocket.DeploymentException
位于java.net.URLClassLoader.findClass(未知源)
位于java.lang.ClassLoader.loadClass(未知源)
位于sun.misc.Launcher$AppClassLoader.loadClass(未知源)
位于java.lang.ClassLoader.loadClass(未知源)
... 还有两个
所有jar文件都是根据教程步骤提供的。
还添加了sdk、android studio、jdk
有人能指导我吗?执行以下代码:
public class AppiumTest
{
public static void main(String[] args) throws Exception
{
// start appium server
Runtime.getRuntime().exec("cmd.exe /c start cmd.exe /k \"appium -a 0.0.0.0 -p 4723\"");
//get address of appium server
URL u=new URL("http://0.0.0.0:4723/wd/hub");
//provide device and app info
DesiredCapabilities dc=new DesiredCapabilities();
dc.setCapability(CapabilityType.BROWSER_NAME,"");
dc.setCapability("deviceName","NVRW499T9PVCSGTO");
dc.setCapability("platformName","android");
dc.setCapability("platformVersion","6.0");
dc.setCapability("appPackage","com.isinolsun.app");
dc.setCapability("appActivity","com.isinolsun.app.activities.OnBoarderActivity");
//create driver object to launch app in device
AndroidDriver driver;
while(2>1)
{
try
{
driver=new AndroidDriver(u,dc);
break;//terminate from loop
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
}
driver.closeApp();
//stop appium server
Runtime.getRuntime().exec("taskkill /F /IM node.exe");
Runtime.getRuntime().exec("taskkill /F /IM cmd.exe");
}
}
执行以下代码:
public class AppiumTest
{
public static void main(String[] args) throws Exception
{
// start appium server
Runtime.getRuntime().exec("cmd.exe /c start cmd.exe /k \"appium -a 0.0.0.0 -p 4723\"");
//get address of appium server
URL u=new URL("http://0.0.0.0:4723/wd/hub");
//provide device and app info
DesiredCapabilities dc=new DesiredCapabilities();
dc.setCapability(CapabilityType.BROWSER_NAME,"");
dc.setCapability("deviceName","NVRW499T9PVCSGTO");
dc.setCapability("platformName","android");
dc.setCapability("platformVersion","6.0");
dc.setCapability("appPackage","com.isinolsun.app");
dc.setCapability("appActivity","com.isinolsun.app.activities.OnBoarderActivity");
//create driver object to launch app in device
AndroidDriver driver;
while(2>1)
{
try
{
driver=new AndroidDriver(u,dc);
break;//terminate from loop
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
}
driver.closeApp();
//stop appium server
Runtime.getRuntime().exec("taskkill /F /IM node.exe");
Runtime.getRuntime().exec("taskkill /F /IM cmd.exe");
}
}
您必须删除java-client-6.0.0-BETA5 JAR并添加java-client-5.0.0-BETA5 JAR
干杯。您必须删除java-client-6.0.0-BETA5 JAR并添加java-client-5.0.0-BETA5 JAR
干杯。您好,请提供详细信息,如您正在使用的appium版本、java客户端版本、您正在使用的设备版本?@SurajJogdand。。。!appium 3.11,java-client-6.0.0BETA,三星。现在它可以与java-client-5.0.0一起使用。根据Gustavo的回答。您好,请提供详细信息,例如,您使用的是哪个appium版本、java客户端版本、您使用的是哪个设备版本?@SurajJogdand。。。!appium 3.11,java-client-6.0.0BETA,三星。现在它可以与java-client-5.0.0一起使用。根据Gustavo的回答,为什么在代码中使用while(2>1)?如果它捕捉到错误,它不会转到无限循环打印e.getMessage吗?为什么在代码中使用while(2>1)?如果它捕捉到错误,它不会进入无限循环打印e.getMessage吗?