System.setProperty и внешний драйвер ...

Как прописать путь к драйверу внешний?
Для запуска связки github+jenkins

System.setProperty(“webdriver.chrome.driver”, System.getProperty(“user.dir”)+"/src/test/resources")

1 лайк

Усложняем задачу … jenkins стоит в докере с убунтой, а я работаю на винде )))

пробросить volume в контейнер и в него положить драйверы

  • я работаю на windows и соответственно использую chromedriver**.exe**
  • в докере убунта и jenkins …
  • jenkins забирает репозиторий с github в котором прописан путь до драйвера .exe и пытается его запустить … соответственно у него нечего не получается потому что он на linux…

две недели ридонли кончились, глупые вопросы стартовали

положите вебдрайвер для линукса в контейнер и дайте путь дженкинсу до этого драйвера

3 лайка

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

2 лайка

Автор не зря поставил такую аватару. Походу пыхнет чего-то убойного и потом вопросы задаёт :slight_smile:

А по факту - прокидывать надо volume где лежит бинарь драйвера линуксовый в контейнер и юзать его.

Положить 2 драйвера, один для винды другой для убунты, в зависимости на какой машине гонятся тесты выбирать какой драйвер запустить, как писали выше. Самое простое решение.

1 лайк

извините, я пропустил: а почему не подошел WebDriverManager?

2 лайка

В общем WebDriverManager наверно хорошая вещь, но я реализовал это так

public WebDriverSettings(){
        String chromeDriver;

        //System.out.println(osName.equals("Windows 10"));
        if (System.getProperty("os.name").equals("Windows 7")) {
            chromeDriver = System.getProperty("user.dir")+"/chromedriver/chromedriver.exe";
        } else chromeDriver = System.getProperty("user.dir")+"/chromedriver/chromedriver";

        System.setProperty("webdriver.chrome.driver", chromeDriver);
        this.driver = new ChromeDriver();
    }

Затем дал атрибут запуска х через командную строку и в итоге ошибку jenkins выдает …

WebDriver unknown error: cannot find Chrome binary

Ну как бы в виндовсе слеши в другую сторону

1 лайк

И скорее всего нужно конкатенацию пути осуществлять какой то джойновой библиотекой, а не в лоб плюсами

Все нормально отрабатывает со слешами
из System.getProperty(“user.dir”) вот такой путь прилетает в jenkins
/var/jenkins_home/workspace/ …
Похоже в докер хром надо поставить WebDriver unknown error: cannot find Chrome binary

Java умная стала. Слеши для винды в обе стороны работают, по-моему. Но лучше File.separator применять и другие плюшки самой Java

винда уже вроде на половину линукс)