【问题标题】:Ignore certificate errors in headless Chrome忽略无头 Chrome 中的证书错误
【发布时间】:2018-07-26 08:03:31
【问题描述】:

我使用WebDriver 3.12。我有两个来自应用程序的实例,一个是无效的,一个是有效的 SSL 认证。测试套件使用有效证书之一正常工作。 --ignore-certificate-errors 标志在 ChromeDriver 2.40 的无头模式下被忽略。我也尝试了--acceptInsecureCerts 标志,但效果相同。 我初始化驱动变量如下:

WebDriver driver = new ChromeDriver(new ChromeOptions().setExperimentalOption("prefs", prefs).addArguments("--start-maximized").addArguments("--acceptInsecureCerts").setHeadless(true));

【问题讨论】:

    标签: java google-chrome selenium webdriver selenium-chromedriver


    【解决方案1】:

    【讨论】:

      【解决方案2】:

      你可以试试这个代码 sn-p,它对我有用:

      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:\\Path\\TO\\chromedriver.log");
      System.setProperty(ChromeDriverService.CHROME_DRIVER_EXE_PROPERTY, "C:\\Path\\TO\\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://self-signed.badssl.com/");
      System.out.println(driver.getPageSource());
      driver.quit();
      

      输出:

      <!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head>
        <meta name="viewport" content="width=device-width, initial-scale=1" />
        <link rel="shortcut icon" href="/icons/favicon-red.ico" />
        <link rel="apple-touch-icon" href="/icons/icon-red.png" />
        <title>self-signed.badssl.com</title>
        <link rel="stylesheet" href="/style.css" />
        <style>body { background: red; }</style>
      </head>
      <body>
      <div id="content">
        <h1 style="font-size: 12vw;">
          self-signed.<br />badssl.com
        </h1>
      </div>
      
      
      
      </body></html>
      

      注意:您必须添加一些导入:

      import org.openqa.selenium.chrome.ChromeDriverService;
      import org.openqa.selenium.chrome.ChromeOptions;
      import org.openqa.selenium.remote.CapabilityType;
      import org.openqa.selenium.remote.DesiredCapabilities;
      import org.openqa.selenium.remote.RemoteWebDriver;
      import java.io.IOException;
      

      【讨论】:

        猜你喜欢
        • 2018-01-12
        • 1970-01-01
        • 1970-01-01
        • 2019-11-05
        • 1970-01-01
        • 1970-01-01
        • 2017-07-31
        • 1970-01-01
        • 2015-04-22
        相关资源
        最近更新 更多