Appium测试用例引发异常

时间:2018-05-11 13:30:06

标签: java eclipse appium-android android-sdk-manager appium-desktop

我正在尝试使用eclipse氧气运行我的第一个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 Desktop应用程序。 当我运行程序时,它在该行上给我例外

    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。

任何人都可以指导我吗?

2 个答案:

答案 0 :(得分:2)

以下代码:

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");

}
}

答案 1 :(得分:2)

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

干杯。