Intellipaat Back

Explore Courses Blog Tutorials Interview Questions
0 votes
2 views
in DevOps and Agile by (19.7k points)

I need to get headless chrome to ignore certificate errors. The option is ignored when running in headless mode, and the driver returns empty html body tags when navigating to an https resource.

<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body></body></html>

This is how I am configuring my chrome driver.

ChromeOptions chromeOptions = new ChromeOptions();

 chromeOptions.addArguments("--headless", "--disable-gpu", "--window-size=1920,1200","--ignore-certificate-errors");

 DesiredCapabilities cap=DesiredCapabilities.chrome();

 cap.setCapability(ChromeOptions.CAPABILITY, chromeOptions);

 cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);

 cap.setCapability(CapabilityType.ACCEPT_INSECURE_CERTS, true);

 chromeHeadlessDriver = new ChromeDriver(cap);

 This thread confirms that --ignore-certificate-errors is ignored in headless mode.

They mention about devtool protocol.

Is it something I can invoke from java? Are there any other alternatives?

1 Answer

0 votes
by (62.9k points)

I have tested the below code, it works perfectly fine with this website: https://www.intellipaat.com/

    ChromeOptions options = new ChromeOptions();

    options.setExperimentalOption("useAutomationExtension", false);

    options.addArguments("--headless", "--window-size=1920,1200","--ignore-certificate-errors");

 

    DesiredCapabilities crcapabilities = DesiredCapabilities.chrome();

    crcapabilities.setCapability(ChromeOptions.CAPABILITY, options);

    crcapabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);

    crcapabilities.setCapability(CapabilityType.ACCEPT_INSECURE_CERTS, true);

 

    System.setProperty(ChromeDriverService.CHROME_DRIVER_LOG_PROPERTY, "C:\temp\chrome\chromedriver.log");

    System.setProperty(ChromeDriverService.CHROME_DRIVER_EXE_PROPERTY, "C:\temp\chrome\chromedriver.exe");

 

    ChromeDriverService service = null;

    try {

        service = new ChromeDriverService.Builder()

                .usingAnyFreePort()

                .withVerbose(true)

                .build();

        service.start();

    } catch (IOException e) {

        e.printStackTrace();

    }

 

    RemoteWebDriver driver = new RemoteWebDriver(service.getUrl(),crcapabilities);

 

    driver.get("https://www.intellipaat.com/");

    System.out.println(driver.getPageSource());

    driver.quit();

Software/framework versions

  • Google Chrome Version 64.0.3282.186

  • Google Chrome Driver Version 64.0.3282.186

  • Selenium version 3.11.0

31k questions

32.8k answers

501 comments

693 users

Browse Categories

...