#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;