t.me/atinfo_chat Telegram группа по автоматизации тестирования

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


(Gallagher) #1

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


#2

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


(Gallagher) #3

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


(Vladislav Abramov) #4

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


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

(Vladislav Abramov) #6

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

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


(Vladislav Abramov) #7

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


(Alexandr D.) #8

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

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


(Vladislav Sobol) #9

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


(Дмитрий Еремин) #10

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


(Gallagher) #11

В общем 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

#12

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


(Maxim Andryushchenkov) #13

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


(Gallagher) #14

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


(Михаил Братухин) #15

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


(Vatslau) #16

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