Перейти к содержимому

Фотография

Как не хардкодить путь к chrome.driver

System setProperty chrome.driver

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 11

#1 Bros

Bros

    Новый участник

  • Members
  • Pip
  • 5 сообщений

Отправлено 24 мая 2018 - 20:17

Добрий день!
Подскажите пожалуйста как не хардкодить путь к хоум драйверу?
Чтобы красиво, а не:
System.setProperty("webdriver.gecko.driver", "C:\\Users\\User\\eclipse-workspace\\webdrivers\\geckodriver.exe");
 
Попробовал:
System.setProperty("webdriver.chrome.driver", Initial.class.getResource("chromedriver.exe").getPath());
WebDriver driver = new ChromeDriver();
 
Но еклипс ругается(
 
 

  • 0

#2 sergueik

sergueik

    Постоянный участник

  • Members
  • PipPipPip
  • 166 сообщений
  • ФИО:кузьмин сергей

Отправлено 25 мая 2018 - 02:05

https://github.com/b...ebdrivermanager


  • 1

#3 TatyanaV

TatyanaV

    Опытный участник

  • Members
  • PipPipPipPip
  • 388 сообщений
  • ФИО:Воробьева Татьяна


Отправлено 25 мая 2018 - 06:44

Просто положите сам ChromeDriver.exe в папку, которая указана в переменной PATH.

Тогда путь к нему вообще нигде в коде указывать не надо будет, ни через System.setProperty, ни через дополнительные библиотеки и т.п..


  • 0

#4 Spock

Spock

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 25 мая 2018 - 08:24

 

Просто положите сам ChromeDriver.exe в папку, которая указана в переменной PATH.

Тогда путь к нему вообще нигде в коде указывать не надо будет, ни через System.setProperty, ни через дополнительные библиотеки и т.п..

интересно тогда, и в гит его коммитить тогда надо будет, и на ЦИ сервере будет всегда крутиться только одна старая версия, да и с переменной PATH на ЦИ сервере морочиться

 

не говоря о том, что не будет работать у коллег которые клонируют себе этот проект


  • 0

#5 TatyanaV

TatyanaV

    Опытный участник

  • Members
  • PipPipPipPip
  • 388 сообщений
  • ФИО:Воробьева Татьяна


Отправлено 25 мая 2018 - 08:56

 

 

Просто положите сам ChromeDriver.exe в папку, которая указана в переменной PATH.

Тогда путь к нему вообще нигде в коде указывать не надо будет, ни через System.setProperty, ни через дополнительные библиотеки и т.п..

интересно тогда, и в гит его коммитить тогда надо будет, и на ЦИ сервере будет всегда крутиться только одна старая версия, да и с переменной PATH на ЦИ сервере морочиться

 

не говоря о том, что не будет работать у коллег которые клонируют себе этот проект

 

Я считаю, что обновление версии браузера и драйвера - в любом случае должны быть осознанными и целенаправленными изменениями. 

 

И да, сам драйвер у меня так же вместе с проектом в репозиторий. Но: а) репозиторий локальный (в нашей внутренней сети), во "внешний" интернет ничего не лезет в поисках новых версий, б) я могу гарантировать, что все будет работать стабильно, т.к. драйвер не поменяется внезапно из-за того, что появилась более свежая версия.

 

У коллег, использующих мой проект - проблем не возникает, т.к. об этом принципе использования драйвера они и так знают.

 

 

В любом случае, я лишь озвучила ещё один вариант, как сделать так, чтобы не прописывать путь к драйверу.

Я никого не заставляю делать также.


  • 0

#6 Spock

Spock

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 25 мая 2018 - 11:11

 

 

Я считаю, что обновление версии браузера и драйвера - в любом случае должны быть осознанными и целенаправленными изменениями. 

версия выставляется в конфиге webdrivermanager, вот её потом и надо "осознанно менять"

 

можно советовать другим стаканом носить воду из колодца, и аргументировать тем что "я никого не заставляю делать так же" и "это ещё один вариант переноса воды из колодца"

 

получается осознанное усложнение проекта, теперь вместо простого клонирования и запуска - ещё надо и сконфигурировать операционную систему


  • 0

#7 TatyanaV

TatyanaV

    Опытный участник

  • Members
  • PipPipPipPip
  • 388 сообщений
  • ФИО:Воробьева Татьяна


Отправлено 25 мая 2018 - 11:32

 

 

 

Я считаю, что обновление версии браузера и драйвера - в любом случае должны быть осознанными и целенаправленными изменениями. 

версия выставляется в конфиге webdrivermanager, вот её потом и надо "осознанно менять"

 

можно советовать другим стаканом носить воду из колодца, и аргументировать тем что "я никого не заставляю делать так же" и "это ещё один вариант переноса воды из колодца"

 

получается осознанное усложнение проекта, теперь вместо простого клонирования и запуска - ещё надо и сконфигурировать операционную систему

 

 

Подключение еще одной библиотеки и дописывание кода по инициализации браузера - против отсутствия каких либо специальных действий и строк в коде. Где еще тут усложнение.

Если уж хочется с водой сравнить - вы предлагаете пристроить к колодцу маленький заводик по производству ведер, а я - просто привязать ведро к барабану.

Вы даже не поинтересовались у автора вопроса - использует ли он Maven, есть ли у него доступ к интернету там, где запуск производится (некоторые запускают на отдельных серверах, у некоторых по соображениям безопасности - куча ограничений по связи с внешним миром, ситуации могут быть самые разные).

 

Не нравится Вам моё решение - Ваше право. Озвучены варианты, автор сможет придти и выбрать тот, который считает для себя оптимальным.


  • 0

#8 Spock

Spock

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 25 мая 2018 - 12:51

 

 

Подключение еще одной библиотеки и дописывание кода по инициализации браузера - против отсутствия каких либо специальных действий и строк в коде. Где еще тут усложнение.

тут для проекта требуется ещё и настройка ОС, так что это по-любому усложнение, а не упрощение. Да ещё видимо проект привязан к какой-то одной ОС, причём какой-то одной разрядности (32 или 64) и не будет работать на других без "допиливания"

 

простой проект - это когда клонировал и запустил, причём проект запустится одинаково без проблем и на 32х и на 64х битных системах, и под виндой и под макосью и под убунтой

 

 

 

Если уж хочется с водой сравнить - вы предлагаете пристроить к колодцу маленький заводик по производству ведер, а я - просто привязать ведро к барабану.

не завод, а "колодец должен подгрузить ведро, которое совместимо с водоносом". а если привязать какое-то одно ведро, то только у "совместимых водоносов" будет работать, да ещё и с требованием чтобы водонос "сам настроился под именно это ведро"


  • 0

#9 Snap

Snap

    Специалист

  • Members
  • PipPipPipPipPip
  • 980 сообщений
  • ФИО:Роман
  • Город:Москва


Отправлено 25 мая 2018 - 16:29

А у ChromeDriver есть разрядности (32 и 64 бит для одной ОС)?


  • 0

#10 Snap

Snap

    Специалист

  • Members
  • PipPipPipPipPip
  • 980 сообщений
  • ФИО:Роман
  • Город:Москва


Отправлено 25 мая 2018 - 16:33

В любом случае, я лишь озвучила ещё один вариант, как сделать так, чтобы не прописывать путь к драйверу.

 

 

Я никого не заставляю делать также.

 

Некоторые по-другому просто не могут )


  • 1

#11 sergueik

sergueik

    Постоянный участник

  • Members
  • PipPipPip
  • 166 сообщений
  • ФИО:кузьмин сергей

Отправлено 01 июня 2018 - 03:08

сам chrome существует  только 64 для osx и linux  и 32 и 64 для windows. а драйвер это согласно stackoveflow просто WebSockets  клиент 
https://stackoverflo...=google_rich_qa ему все равко какая разрядность

 

А у ChromeDriver есть разрядности (32 и 64 бит для одной ОС)?


  • 0

#12 Evgenii163

Evgenii163

    Новый участник

  • Members
  • Pip
  • 31 сообщений
  • ФИО:Клочков Евгений Анатольевич
  • Город:Тольятти

Отправлено 20 августа 2019 - 08:57

Спасибо тебе добрый человек


  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных