Ошибка Appium с помощью 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 Log других успешных запусков Appium TestDroid я вижу версию 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);

в ( https://github.com/bitbar/testdroid-samples/blob/master/appium/sample-scripts/java/src/test/java/com/testdroid/appium/android/sample/SampleAppiumTest.java)

Это использует очень старую версию Appium Java Client-1.7.0, в то время как мой код использует 3.1.0. Я хочу использовать эту новую версию Java-клиента Appium для его новых функций. Поскольку последняя версия TestDroid Appium, мой код должен был работать.

Может кто-нибудь, пожалуйста, помогите мне с этим.

1 ответ

Решение

Поскольку Java-клиент Appium версии 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>
Другие вопросы по тегам