Добрый день!
Проблема в проекте следующая:
Подключена в зависимостях библиотека java-client (7.6.0)
И selenide 6.2.0
при запуске тестов падает следующая ошибка:
java.lang.NoSuchMethodError: org.openqa.selenium.WebDriver$Timeouts.pageLoadTimeout(Ljava/time/Duration;)Lorg/openqa/selenium/WebDriver$Timeouts;
at com.codeborne.selenide.webdriver.WebDriverFactory.setLoadTimeout(WebDriverFactory.java:83)
at com.codeborne.selenide.webdriver.WebDriverFactory.createWebDriver(WebDriverFactory.java:73)
at com.codeborne.selenide.drivercommands.CreateDriverCommand.createDriver(CreateDriverCommand.java:78)
at com.codeborne.selenide.impl.WebDriverThreadLocalContainer.createDriver(WebDriverThreadLocalContainer.java:170)
at com.codeborne.selenide.impl.WebDriverThreadLocalContainer.getAndCheckWebDriver(WebDriverThreadLocalContainer.java:156)
at com.codeborne.selenide.WebDriverRunner.getAndCheckWebDriver(WebDriverRunner.java:130)
at com.codeborne.selenide.impl.StaticDriver.getAndCheckWebDriver(StaticDriver.java:65)
at com.codeborne.selenide.SelenideDriver.getAndCheckWebDriver(SelenideDriver.java:206)
at com.codeborne.selenide.logevents.SelenideLogger.run(SelenideLogger.java:152)
at com.codeborne.selenide.drivercommands.Navigator.open(Navigator.java:85)
at com.codeborne.selenide.SelenideDriver.open(SelenideDriver.java:97)
at com.codeborne.selenide.Selenide.open(Selenide.java:124)
Изучив код проекта selenide, я вижу следующий метод:
private void setLoadTimeout(Config config, WebDriver webdriver)
Ожидается, что на вход приходит WebDriver из selenium-api
Но при запуске самого кода, я вижу, что на вход передается WebDriver из java-client
Пакеты для этих двух классов абсолютно идентичны (org.openqa.selenium.WebDriver)
Какие способы есть что бы обойти эту проблему? Компилятор будто не понимает что именно передается.
ПС
Нашла, что основная проблема при вызове
new ChromeDriver(this.buildService(config), chromeOptions)
Если провалиться внутрь, то можно увидеть наследование в таком порядке:
ChromeDriver extends ChromiumDriver… extends RemoteWebDriver implements WebDriver
И вот тут и главная проблема, что WebDriver берется не тот, который нужен