Менеджер WebDriver java.lang.NoSuchMethodError

Я использую Java+selenium+testng+maven. И я попытался использовать WebDriver Manager вместо стандартного использования. После объявления по инструкции API, я столкнулся с проблемой. При компиляции возникают ошибки:

java.lang.NoSuchMethodError: org.apache.commons.io.FileUtils.copyInputStreamToFile(Ljava/io/InputStream;Ljava/io/File;)V

at io.github.bonigarcia.wdm.Downloader.download(Downloader.java:128)
at io.github.bonigarcia.wdm.BrowserManager.manage(BrowserManager.java:277)
at io.github.bonigarcia.wdm.BrowserManager.setup(BrowserManager.java:108)
at io.github.bonigarcia.wdm.BrowserManager.setup(BrowserManager.java:87)
at Base.BaseDriver.startBrowser(BaseDriver.java:67)
at Base.BaseTest.beforeClass(BaseTest.java:24)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:85)
at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:510)
at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:211)
at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:138)
at org.testng.internal.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:170)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:104)
at org.testng.TestRunner.privateRun(TestRunner.java:773)
at org.testng.TestRunner.run(TestRunner.java:623)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:357)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:352)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:310)
at org.testng.SuiteRunner.run(SuiteRunner.java:259)
...

Вот мой кодовый кадр:

public static WebDriver startBrowser() {

    String browser = Property.getProperties("browser");

    if (browser.equalsIgnoreCase("firefox")) {
        FirefoxDriverManager.getInstance().setup();
        sDriver = new FirefoxDriver();
    } else if (browser.equalsIgnoreCase("chrome")) {
        ChromeDriverManager.getInstance().setup();
        sDriver = new ChromeDriver();
    }

    sDriver.manage().window().maximize();
    sDriver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

    return sDriver;
}

И использование драйвера:

@BeforeClass
public void beforeClass() throws Exception {
    BaseDriver.startBrowser();
}

person Community    schedule 06.09.2017    source источник


Ответы (1)


WebDriverManager 1.7.1 внутренне использует Apache commons-io 2.5. Кажется, вы используете другую версию этой библиотеки в своем проекте, и в результате вы получаете эту ошибку.

Самым простым решением может быть обновление вашей версии commons-io до версии 2.5, которая является последней стабильной версией на момент написания этой статьи.

person Boni García    schedule 06.09.2017
comment
Спасибо. Я обновил зависимость. Драйвер хром работает. Но при попытке использовать firefox у меня возникла проблема: java.lang.RuntimeException: java.lang.RuntimeException: обнаружена ошибка ответа. HTTP/1.1 401 Неавторизованный - person ; 07.09.2017