Получение в Selenide WebDriver удалённо, не указывая путь расположения локально

Всем привет! Пробую работу с Selenide.
Насколько понимаю одной из фичей Selenide по сравнению с Selenium является факт того, что можно статически импортировать вебдрайвер, не заботясь о нём, который по умолчанию является синглтоном.
Так вот, если я не указываю на локальной машине месторасположение файла webDriver (работаю с Chrome), то Selenide сам идёт в https://chromedriver.storage.googleapis.com и стягивает его.
На этом моменте валится ошибка
[main] ERROR BrowserManager - Exception managing driver for [chromedriver]
org.apache.http.conn.HttpHostConnectException: Connect to chromedriver.storage.googleapis.com:443 [chromedriver.storage.googleapis.com/173.194.73.128] failed: Connection refused: connect

При указании расположения драйвера на локальной машине всё работает корректно.
Вообще задача запустить тесты на Jenkins, поэтому данный вариант не подходит.
Подскажите пожалуйста как можно реализовать процесс получения файла вебдрайвера удалённо, не указывая путь? И правильно ли я понимаю, что это возможно?)

Заранее спасибо!

1 лайк

Привет! Попробуй использовать Webdriver Manager
Скачивает последнюю версию драйвера браузера (запускает, если есть уже) или можно указать версию самому.

@Viterzgir Нет-нет, селенид как раз содержит вышеупомянутый webdriver manager, и именно он не смог скачать вебдрайвер.

@kloginov13 Думаю, это одноразовая проблема - просто в тот момент сайт реально был недоступен. Попробуйте ещё раз.

Ну или у вас тупо нет доступа с дженкинса на сайт chromedriver.storage.googleapis.com:443 - тогда идите к админам, выбивайте доступ.

@asolntsev Спасибо за ответ! Полагаю, дело в доступах, просто не был уверен, что правильно понимаю данный механизм подтягивания драйвера, ибо выглядит достаточно футуристично после использования голого селениума:slight_smile: . Сегодня попробуем.
Андрей, подскажите, может возможно где-то почитать как это работает? При обращении к storage происходит именно скачивание файла вебдрайвера? Это происходит единожды для сьюта или же перед выполнением каждого теста?

Да, скачивается именно бинарник вебдрайвера. Происходит один раз в пределах одного запуска jvm. Бинарник кэшируется в файловой системе.

Здорово, спасибо!
А что насчёт драйверов других браузеров? Насколько понимаю, дефолтным браузером является firefox, и для него бинарник не скачивается.
Для IE: http://selenium-release.storage.googleapis.com/
А что насчёт Safari?

В смысле? WebDriverManager (который встроен в Selenide) умеет скачивать бинарники для любых браузеров. Какой браузер используете, для того и скачает.

Ввиду security policies компании необходимо знать адреса, по которым скачиваются бинарники, чтобы разрешить доступ к этим адресам.

тут все адреса

3 лайка