Дженкинс показывает ошибку Chrome недоступна - PullRequest
0 голосов
/ 03 июля 2018

Когда я выполняю тесты в Linux, я получаю следующую проблему:

org.openqa.selenium.WebDriverException: chrome not reachable
(Session info: headless chrome=67.0.3396.99)
(Driver info: chromedriver=2.40.565383 
platform=Linux 4.14.33-51.34.amzn1.x86_64 x86_64) (WARNING: The server did not provide any stacktrace information)

Эти тесты работали нормально при выполнении через командную строку. Я установил jenkins, настроил несколько заданий и начал выполнять те же тесты, используя задания jenkin. После настройки jenkins я получаю вышеуказанную ошибку, и в настоящий момент выполнение теста через командную строку также показывает ту же ошибку

Jenkins устанавливается как файл war и запускается с помощью команды nohup от пользователя без полномочий root.

Ниже приведен код для инициализации веб-драйвера

public static WebDriver getDriver(){

        //Get the current OS Version
        String os = System.getProperty("os.name").toLowerCase();
        ChromeOptions chromeOptions = new ChromeOptions();
        chromeOptions.addArguments("window-size=1920x1080");
        //Execute Headless if on Test Server
        if(os.contains("linux")) {
            System.setProperty("webdriver.chrome.driver", "path to chromedriver");
            chromeOptions.addArguments("--headless");
            //Option added to resolve chrome not reachable issue
            chromeOptions.addArguments("--no-sandbox");
            chromeOptions.addArguments("--disable-setuid-sandbox");
            chromeOptions.addArguments("--disable-gpu");
        }
        webdriver = new ChromeDriver(chromeOptions);
        return webdriver;
    }

Это работает без проблем на локальном компьютере, работающем на Mac

Любая помощь будет оценена. Застрял в создании рабочих мест Jenkins из-за этого

Когда Дженкинс удален, выполнение командной строки снова начинает работать нормально. Это как-то связано с установкой Jenkins?

Ответы [ 2 ]

0 голосов
/ 29 августа 2018

На мой взгляд, проблема в настройке разрешения для безголового хрома в chromeoptions в Linux и Jenkins. Передайте разное разрешение и результаты будут отличаться. Попробовал следующее, и теперь я получаю 100% точные результаты.

    File file = new File("/usr/bin/chromedriver");
    System.setProperty("webdriver.chrome.driver", file.getAbsolutePath());
    ChromeOptions options = new ChromeOptions();
    options.addArguments("headless");
    options.addArguments("window-size=1280x800");
    options.addArguments("no-sandbox");
    options.addArguments("–disable-dev-shm-usage");
    options.addArguments("start-maximized");
    options.addArguments("--disable-gpu");
    options.addArguments("--disable-setuid-sandbox");
    driver = new ChromeDriver(options);
0 голосов
/ 03 июля 2018

Попробуйте следующий код

public static WebDriver getDriver(){
        //Get the current OS Version
        String os = System.getProperty("os.name").toLowerCase();
        ChromeOptions chromeOptions = new ChromeOptions();
        chromeOptions.addArguments("window-size=1920x1080");
        //Execute Headless if on Test Server
        if(os.contains("linux")) {
            chromeOptions.addArguments("--headless");
            chromeOptions.addArguments("--no-sandbox");
            chromeOptions.addArguments("start-maximized");
            chromeOptions.addArguments("disable-infobars");
            chromeOptions.addArguments("--disable-extensions");
            System.setProperty("webdriver.chrome.driver", "path to chromedriver");

        }
        webdriver = new ChromeDriver(chromeOptions);
        return webdriver;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...