Selenium Webdriver Manager

Хочу поделиться небольшой утилитой, которую я нарыл на просторах Github.

Называется она WebDriverManager.

С помощью этой библиотеки вы можете решить достаточно банальную проблему управления драйверами для Chrome, Firefox или InternetExplorer.

Я думаю, многим автоматизаторам знакома "проблема":

org.openqa.selenium.WebDriverException:
The path to the driver executable must be set by the webdriver.chrome.driver system property;
for more information, see http://code.google.com/p/selenium/wiki/ChromeDriver.
The latest version can be downloaded from http://code.google.com/p/chromedriver/downloads/list

Да, все это не ново и решается достаточно просто:

System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");

При таком подходе обычно нужно скачивать и хранить этот самый chromedriver в папке resources, а что еще более неприятно, - если мы запускаем тесты на разных платформах, то нужно творить разные фабрики и писать кучу дополнительного кода.

Библиотека же решает это все следующим образом:

public class ChromeTest {

    protected WebDriver driver;

    @BeforeClass
    public static void setupClass() {
        ChromeDriverManager.getInstance().setup();
    }

    @Test
    public void test() {
        // Using Selenide
        open('http://automation-remarks.com');
        $$('.post').shouldHave(size(10));
    }
}

В целом, эта находка меня очень порадовала и я уже ее прикрутил к своему проекту - рекомендую!!