Headless Chrome run with selenium

微笑、不失礼 提交于 2019-12-01 12:17:31

问题


        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);

fails as:

Exception in thread "main" org.openqa.selenium.WebDriverException: Unable to parse remote response:

Not Found

Any idea why?

Followed: How to connect to Chromium Headless using Selenium


回答1:


What are the versions of your Chrome browser, chromedriver and Selenium? I tried with:

  1. Chrome Version 62.0.3202.75 (Official Build) (64-bit)
  2. chromedriver 2.33
  3. Selenium 3.6.0

The following code:

    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());

Note: In current versions of Selenium and ChromeDriver replace:

    chromeOptions.addArguments("--headless");

with

    chromeOptions.setHeadless(true);

Ref: https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/chrome/ChromeOptions.html#setHeadless-boolean- Also you must set Window size otherwise it renders in mobile mode and you may not get certain elements in the page.

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

Tested on chromedriver 2.42.591071 with Selenium 3.14.0

The output:

The Internet

Take a look to Getting Started with Headless Chrome about the browser support versions.




回答2:


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

This worked for me. Chromedriver Version:2.37



来源:https://stackoverflow.com/questions/47067188/headless-chrome-run-with-selenium

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!