Appium 测试用例抛出异常

Appium Test Case Throws Exception

我正在尝试 运行 我的第一个使用 eclipse oxygen 的 appium 测试用例。 我一步步跟进教程

http://www.automationtestinghub.com/appium-tutorial/

我的实际代码是

    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());
    }
}

我正在使用真实设备。

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());
    }

异常消息是

    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

所有的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");

}
}

您必须删除 java-client-6.0.0-BETA5 JAR 并添加 java-client-5.0.0-BETA5 JAR。

干杯。