【发布时间】:2018-01-12 15:19:30
【问题描述】:
我需要使用 headless chrome 来忽略证书错误。在无头模式下运行时忽略该选项,并且驱动程序在导航到 https 资源时返回空的 html 正文标记。
<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body></body></html>
这就是我配置我的 chrome 驱动程序的方式。
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 确认 --ignore-certificate-errors 在无头模式下被忽略。
他们提到了devtool protocol。
我可以从 java 调用它吗?还有其他选择吗?
【问题讨论】:
-
对“acceptInsecureCerts”的支持将被添加到chromedriver bugs.chromium.org/p/chromium/issues/detail?id=721739
-
可以使用 Selenium 调用 DevTool API,并使用此端点:
/session/:sessionId/chromium/send_command_and_get_result。此命令特定于 Chrome 驱动程序,尚未在客户端中实现。您可以通过重写命令执行器,用几行代码自己实现它。
标签: java google-chrome selenium google-chrome-devtools selenium-chromedriver