
此错误消息…
This site can’t provide a secure connection app sent an invalid response. ERR_SSL_PROTOCOL_ERROR
…表示 ChromeDriver 无法启动/产生新的 WebBrowser, 即本地主机上的 Chrome浏览器 会话。
正如你所看到的这个问题,你对 本地主机(没有HTTPS)
按照此评论一眼罩的解决办法是增加
argument
--allow-insecure-localhost通过
chromeOptions()如下:
'goog:chromeOptions': {'args': ['--allow-insecure-localhost'], 'extensions': []}但是你的主要问题似乎是与 能力 ,你必须设置
platform为集合S
ANY如下:
{'acceptInsecureCerts': True,'browserName': 'chrome','goog:chromeOptions': {'args': ['--ignore-certificate-errors'], 'extensions': []},'platform': 'ANY','version': ''}正如WebDriver-W3C Living document的 platformName
部分提到的那样,以下平台名称通常以易于理解的语义使用,并且在匹配功能时,通过将其作为已知操作系统的有效同义词来实现最大的互操作性:
Key System--- ------"linux" Any server or desktop system based upon the Linux kernel."mac" Any version of Apple’s macOS."windows" Any version of Microsoft Windows, including desktop and mobile versions.
注意 :此列表并不详尽。
从New Session返回功能时,返回更特定的platformName是有效的,从而允许用户正确标识WebDriver实现在其上运行的操作系统。
因此
"platform":"ANY", 与其 传递 期望的功能 对象, 不如说 是更具体的
"platform":"linux"方法。
有关 ChromeDriver , Chrome 和 Selenium Client 版本的更多信息将有助于我们以更好的方式分析问题。但是,根据
ChromeDriver的 历史记录,最近几个版本的 ChromeDriver 中解决了与 证书错误 处理相关的以下问题: __
--ignore-certificate-errors忽略,只能通过devtools进行设置。因此,有必要
certificateError在以浏览器为目标的DevTools客户端上覆盖和处理事件。一个补丁发布实施新DevTools方法的使用,以替代证书错误处理浏览器的宽这使得在无头模式忽略证书错误太多。
Security.enable/
Security.setOverrideCertificateErrors命令在尝试导航之前。一个修复用简单的“忽略所有证书错误”模式发布,取而代之的是新的,而不是过时的旧覆盖命令
setIgnoreCertificateErrors命令,它也暴露了在浏览器上的目标的安全域,以促进全球范围内应用该重写了整个浏览器。
--allow-insecure-localhost
acceptInsecureCerts
--ignore-certificate-errors
'chromedriverVersion': '74.0.3729.6',请确保您也正在使用
'chrome': '74.0'(根据ChromeDriver v74.0.3729.6发行说明)