Селен. Селенида. Файл класса для org.openqa.selenium.WrapsDriver по какой-то причине не найден

Я использую Java в проекте Maven. Когда я пытаюсь использовать функции Selenide в своих тестах, я получаю эту ошибку:

Error:(39, 26) java: cannot access org.openqa.selenium.WrapsDriver class file for org.openqa.selenium.WrapsDriver not found

В то же время мои тесты хорошо работают без кода Selenide.

Вот мой POM xml:

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

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
    </dependency>
    <dependency>
        <groupId>com.codeborne</groupId>
        <artifactId>selenide</artifactId>
        <version>5.0.0</version>
    </dependency>

    <dependency>
        <groupId>com.codeborne</groupId>
        <artifactId>selenide</artifactId>
        <version>RELEASE</version>
    </dependency>
</dependencies>

2 ответа

Проблема была решена добавлением депанданса

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-api</artifactId>
        <version>3.14.0</version>
    </dependency>

Чтобы объяснить ответ подробно: когда мы добавляем зависимость selenium-java, она вытаскивает под капот среди других зависимостей selenium api:

          org.seleniumhq.selenium:selenium-java -> 3.141.59
    +--- org.seleniumhq.selenium:selenium-api:3.141.59
    +--- org.seleniumhq.selenium:selenium-chrome-driver:3.141.59  
         +--- org.seleniumhq.selenium:selenium-api:3.141.59

Теперь, если у вас есть какая-либо другая зависимость, которая также использует selenium-api как транзитивную зависимость (в данном случае я думаю, что это селенид), тогда будет несоответствие версии, которое вызовет ошибку.

Явно объявив зависимость как

      <dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-api</artifactId>
    <version>3.14.0</version>
</dependency>

Мы сообщаем нашему инструменту управления сборкой (который также может быть gradle помимо maven), какую именно версию selenium api нужно использовать, и, следовательно, проблема решена.

Другие вопросы по тегам