Исключение в потоке "main" java.lang.NoClassDefFoundError, как только я запускаю свой скрипт Appium - PullRequest
0 голосов
/ 24 марта 2019

Я новый пользователь Appium, и я иду с учебником по Appium, и когда я пытаюсь запустить свой скрипт, я получаю следующую ошибку:

Exception in thread “main” java.lang.NoClassDefFoundError: org/openqa/selenium/remote/AcceptedW3CCapabilityKeys
at io.appium.java_client.remote.NewAppiumSessionPayload.(NewAppiumSessionPayload.java:98)
at io.appium.java_client.remote.AppiumCommandExecutor$1.createSession(AppiumCommandExecutor.java:175)
at io.appium.java_client.remote.AppiumCommandExecutor.createSession(AppiumCommandExecutor.java:217)
at io.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor.java:239)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:601)
at io.appium.java_client.DefaultGenericMobileDriver.execute(DefaultGenericMobileDriver.java:42)
at io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:1)
at io.appium.java_client.android.AndroidDriver.execute(AndroidDriver.java:1)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:219)
at org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:142)
at io.appium.java_client.DefaultGenericMobileDriver.(DefaultGenericMobileDriver.java:38)
at io.appium.java_client.AppiumDriver.(AppiumDriver.java:84)
at io.appium.java_client.AppiumDriver.(AppiumDriver.java:94)
at io.appium.java_client.android.AndroidDriver.(AndroidDriver.java:95)
at base.main(base.java:20)
Caused by: java.lang.ClassNotFoundException: org.openqa.selenium.remote.AcceptedW3CCapabilityKeys
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)
… 15 more

Я пытался удалить банки с селеном, перезапустить затмение и эмулятор без каких-либо преимуществ.

вот мой сценарий:

import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import org.openqa.selenium.remote.DesiredCapabilities;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.AndroidElement;
import io.appium.java_client.remote.MobileCapabilityType;

public class base {

public static void main(String[] args) throws MalformedURLException {

    File f = new File("src");
    File fs = new File(f,"ApiDemos-debug.apk");
    URL ServerURL = new URL("http://127.0.0.1:4723/wd/hub");

    DesiredCapabilities cap = new DesiredCapabilities();
    cap.setCapability(MobileCapabilityType.DEVICE_NAME, "Demo");
    cap.setCapability(MobileCapabilityType.APP, fs.getAbsolutePath());
    AndroidDriver<AndroidElement> driver = new AndroidDriver<>(new URL("http://127.0.0.1:4723/wd/hub"),cap);

} 
}

1 Ответ

0 голосов
/ 24 марта 2019

@ Малек, привет. Вы создали Maven-проект?

Не могли бы вы убедиться, что у вас есть правильные и актуальные зависимости? Очевидно, вам не хватает какой-то зависимости, или maven не вытащил зависимость из репозитория. Пожалуйста, обратите внимание:

если у вас есть зависимости от селена и java-клиента, например:

<dependency>
  <groupId>io.appium</groupId>
  <artifactId>java-client</artifactId>
  <version>7.0.0</version>
</dependency>

и

<dependency>
  <groupId>org.seleniumhq.selenium</groupId>
  <artifactId>selenium-java</artifactId>
  <version>3.12.0</version>
</dependency>

они могут конфликтовать друг с другом. Пожалуйста, удалите зависимость от селена и оставьте зависимость от Java-клиента.

После этого - пожалуйста, позвоните mvn clean install команду. Вы можете узнать о жизненном цикле maven здесь .

Второй вариант, чтобы попробовать: пожалуйста, убедитесь, что вы создаете и инициализируете возможности правильным образом. Разницу между возможностями спецификации JSONWP и W3C Вы можете получить здесь, в этот ответ .

И последний совет - здесь, в Сравнение и объединение драйверов автоматизации веб- и мобильных тестов статья Вы можете получить пример рабочего кода, который вы можете настроить в соответствии со своими потребностями.

Надеюсь, это поможет вам. С Уважением, Евгений

...