Безголовый хром с селеном

        System.setProperty("webdriver.chrome.driver", "/usr/bin/google-chrome");

        final ChromeOptions chromeOptions = new ChromeOptions();
        //chromeOptions.addArguments("headless");
        chromeOptions.addArguments("window-size=1200x600");

        final DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
        desiredCapabilities.setCapability(ChromeOptions.CAPABILITY, chromeOptions);


        final URL url = new URL("https://the-internet.herokuapp.com/login");
        final WebDriver driver = new RemoteWebDriver(url, desiredCapabilities);

не удается как:

Исключение в потоке "main" org.openqa.selenium.WebDriverException: невозможно проанализировать удаленный ответ:

не обнаружена

Есть идеи почему?

Далее: Как подключиться к Chromium Headless с помощью Selenium

2 ответа

Какие версии вашего браузера Chrome, chromedriver и Selenium? Я пробовал с:

  1. Версия Chrome 62.0.3202.75 (официальная сборка) (64-разрядная версия)
  2. хромедривер 2.33
  3. Селен 3.6.0

Следующий код:

    System.setProperty("webdriver.chrome.driver", "/pathTo/chromedriver);

    ChromeOptions chromeOptions = new ChromeOptions();
    chromeOptions.addArguments("--headless");

    ChromeDriver driver = new ChromeDriver(chromeOptions);
    driver.get("https://the-internet.herokuapp.com/login");
    System.out.println(driver.getTitle());

Примечание: в текущих версиях Selenium и ChromeDriver замените:

    chromeOptions.addArguments("--headless");

с

    chromeOptions.setHeadless(true);

Ссылка: https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/chrome/ChromeOptions.html Также вы должны установить размер окна, иначе он будет отображаться в мобильном режиме, и вы может не получить определенные элементы на странице.

    chromeOptions.addArguments("--window-size=1200x600");

Протестировано на хромедривере 2.42.591071 с селеном 3.14.0

Выход:

The Internet

Ознакомьтесь с разделом Начало работы с Headless Chrome, чтобы узнать о версиях поддержки браузера.

options.addArguments("headless");
capabilities.setCapability(ChromeOptions.CAPABILITY, options);

Это сработало для меня. Версия Chromedriver:2.37

Другие вопросы по тегам