Что вызывает java.lang.NoClassDefFoundError: org/openqa/selenium/внутренний/Требуется при использовании WebDriverManager 5.0.3

#selenium #selenium-webdriver #webdriver-manager #webdrivermanager-java

Вопрос:

У меня есть приложение для загрузки spring, которое я хочу протестировать с помощью Selenium. Я использую WebDriverManager v5.0.3

При настройке веб-драйвера WebDriverManager.chromedriver().setup(); я получаю исключение:

 java.lang.NoClassDefFoundError: org/openqa/selenium/internal/Require  

или

 java.lang.ClassNotFoundException: org.openqa.selenium.internal.FindsById  

Мой pom.xml содержит это:

 lt;dependencygt;  lt;groupIdgt;io.github.bonigarcialt;/groupIdgt;  lt;artifactIdgt;webdrivermanagerlt;/artifactIdgt;  lt;versiongt;5.0.3lt;/versiongt;  lt;/dependencygt;  lt;dependencygt;  lt;groupIdgt;org.seleniumhq.seleniumlt;/groupIdgt;  lt;artifactIdgt;selenium-javalt;/artifactIdgt;  lt;versiongt;4.1.0lt;/versiongt;  lt;/dependencygt;  lt;dependencygt;  lt;groupIdgt;org.seleniumhq.seleniumlt;/groupIdgt;  lt;artifactIdgt;selenium-apilt;/artifactIdgt;  lt;versiongt;4.1.0lt;/versiongt;  lt;/dependencygt;  

Ответ №1:

Существует несовместимость между WebDriverManager v5 и Selenium v4. После понижения уровня Selenium до последней версии v3 subversion все работает.

 lt;dependencygt;  lt;groupIdgt;io.github.bonigarcialt;/groupIdgt;  lt;artifactIdgt;webdrivermanagerlt;/artifactIdgt;  lt;versiongt;5.0.3lt;/versiongt;  lt;/dependencygt;  lt;dependencygt;  lt;groupIdgt;org.seleniumhq.seleniumlt;/groupIdgt;  lt;artifactIdgt;selenium-javalt;/artifactIdgt;  lt;versiongt;3.141.59lt;/versiongt;  lt;/dependencygt;  lt;dependencygt;  lt;groupIdgt;org.seleniumhq.seleniumlt;/groupIdgt;  lt;artifactIdgt;selenium-apilt;/artifactIdgt;  lt;versiongt;3.141.59lt;/versiongt;  lt;/dependencygt;  

Комментарии:

1. Это помогло. Вы знаете, где я могу найти дополнительную информацию об этой несовместимости?

Ответ №2:

Вам необходимо выполнить mvn clean compile команду в том же каталоге, в котором pom.xml находится файл, после изменения версии на 4** или добавления этой зависимости в файл pom.

Ответ №3:

Вы можете проверить свои библиотеки в своем проекте.

Я тоже сталкиваюсь с этой проблемой, наконец, я обнаружил, что в моем проекте maven библиотеки зависимостей selenium не имеют одинаковой версии.

Я создаю новый проект, использующий Gradle, отличный от Maven, с selenium 4.0.0, и он отлично работает.

поэтому я проверяю неправильные библиотеки и вручную настраиваюсь на ту же версию с библиотекой selenium-java в моем pom.xml. наконец-то это работает.

Кстати: чистая установка mvn не работает для меня.

 lt;!-- only this origin --gt;  lt;dependencygt;  lt;groupIdgt;org.seleniumhq.seleniumlt;/groupIdgt;  lt;artifactIdgt;selenium-javalt;/artifactIdgt;  lt;versiongt;4.0.0lt;/versiongt;  lt;/dependencygt;  lt;!-- add belows for these dependencies version is not 4.0.0 when automatically generated --gt;  lt;dependencygt;  lt;groupIdgt;org.seleniumhq.seleniumlt;/groupIdgt;  lt;artifactIdgt;selenium-chrome-driverlt;/artifactIdgt;  lt;versiongt;4.0.0lt;/versiongt;  lt;/dependencygt;  lt;dependencygt;  lt;groupIdgt;org.seleniumhq.seleniumlt;/groupIdgt;  lt;artifactIdgt;selenium-apilt;/artifactIdgt;  lt;versiongt;4.0.0lt;/versiongt;  lt;/dependencygt;  lt;dependencygt;  lt;groupIdgt;org.seleniumhq.seleniumlt;/groupIdgt;  lt;artifactIdgt;selenium-remote-driverlt;/artifactIdgt;  lt;versiongt;4.0.0lt;/versiongt;  lt;/dependencygt;