Appium error with testdroid: java.lang.NoClassDefFoundError: org/openqa/selenium/internal/HasIdentity
Appium error with testdroid: java.lang.NoClassDefFoundError: org/openqa/selenium/internal/HasIdentity
以下代码适用于本地 Appium 客户端(版本:1.4.0.0),但无法适用于 TestDroid 云:
private static AppiumDriver<MobileElement> driver;
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("platformName", "Android");
capabilities.setCapability("testdroid_target", "Android");
capabilities.setCapability("deviceName", "Android Device");
capabilities.setCapability("testdroid_username", TESTDROID_USERNAME);
capabilities.setCapability("testdroid_password", TESTDROID_PASSWORD);
capabilities.setCapability("testdroid_project", "My Test Project");
capabilities.setCapability("testdroid_testrun", "AndroidDriver 1");
capabilities.setCapability("testdroid_device", "Nvidia Shield Tablet"); //Free device
capabilities.setCapability("testdroid_app", fileUUID);
driver = new AndroidDriver<MobileElement>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
创建上面的AppiumDriver实例失败,异常:
java.lang.NoClassDefFoundError: org/openqa/selenium/internal/HasIdentity
从其他成功的Appium TestDroid运行的Appium Log中,我可以看到Apppium版本是1.4.3:"info: Welcome to Appium v1.4.3"。所以,我上面的代码应该有效。
Testdroid 的示例代码使用非常旧的 Appium 版本并且运行成功:
private static AppiumDriver wd;
wd = new AppiumDriver(new URL(TESTDROID_SERVER+"/wd/hub"), capabilities);
这使用非常旧版本的 Appium Java Client-1.7.0,而我的代码使用 3.1.0。我想使用这个新版本的 Appium Java 客户端来获得它的新功能。由于 TestDroid Appium 版本是最新的,我的代码应该可以工作。
有人可以帮我解决这个问题吗?
由于 Appium Java 客户端版本 1.3.0 依赖于 Selenium 2.46.0,您可以从 pom.xml 中删除以下行:
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-api</artifactId>
<version>2.42.2</version>
<scope>test</scope>
</dependency>
以下代码适用于本地 Appium 客户端(版本:1.4.0.0),但无法适用于 TestDroid 云:
private static AppiumDriver<MobileElement> driver;
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("platformName", "Android");
capabilities.setCapability("testdroid_target", "Android");
capabilities.setCapability("deviceName", "Android Device");
capabilities.setCapability("testdroid_username", TESTDROID_USERNAME);
capabilities.setCapability("testdroid_password", TESTDROID_PASSWORD);
capabilities.setCapability("testdroid_project", "My Test Project");
capabilities.setCapability("testdroid_testrun", "AndroidDriver 1");
capabilities.setCapability("testdroid_device", "Nvidia Shield Tablet"); //Free device
capabilities.setCapability("testdroid_app", fileUUID);
driver = new AndroidDriver<MobileElement>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
创建上面的AppiumDriver实例失败,异常: java.lang.NoClassDefFoundError: org/openqa/selenium/internal/HasIdentity
从其他成功的Appium TestDroid运行的Appium Log中,我可以看到Apppium版本是1.4.3:"info: Welcome to Appium v1.4.3"。所以,我上面的代码应该有效。
Testdroid 的示例代码使用非常旧的 Appium 版本并且运行成功:
private static AppiumDriver wd;
wd = new AppiumDriver(new URL(TESTDROID_SERVER+"/wd/hub"), capabilities);
这使用非常旧版本的 Appium Java Client-1.7.0,而我的代码使用 3.1.0。我想使用这个新版本的 Appium Java 客户端来获得它的新功能。由于 TestDroid Appium 版本是最新的,我的代码应该可以工作。
有人可以帮我解决这个问题吗?
由于 Appium Java 客户端版本 1.3.0 依赖于 Selenium 2.46.0,您可以从 pom.xml 中删除以下行:
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-api</artifactId>
<version>2.42.2</version>
<scope>test</scope>
</dependency>