ChromeDriver ERR_SSL_PROTOCOL_ERROR尽管--ignore-certificate-errors

ChromeDriver ERR_SSL_PROTOCOL_ERROR尽管--ignore-certificate-errors,第1张

ChromeDriver ERR_SSL_PROTOCOL_ERROR尽管--ignore-certificate-errors

错误消息…

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"
方法。

您可以在带有参数的http POST到/
session的Curl错误中找到相关的讨论:{“ desiredCapabilities”:{“
browserName”:“ chrome”,“ platform”:“
ANY”与Selenium和PHPUnit


有关 ChromeDriverChromeSelenium Client 版本的更多信息将有助于我们以更好的方式分析问题。但是,根据
ChromeDriver的 历史记录,最近几个版本的 ChromeDriver 中解决了与 证书错误 处理相关的以下问题: __

  • 允许通过DevTools处理证书错误:由于无头chrome无法显示SSL证书错误的UI警告,因此发布了一个修复程序以将错误暴露为DevTools事件,并控制通过DevTools命令执行的 *** 作。
  • 提供无头处理Chromedriver / Selenium中的证书错误的功能:以前,通过用户界面版本的Chromium(如)中的CLI开关控制的某些与安全相关的选项被
    --ignore-certificate-errors
    忽略,只能通过devtools进行设置。因此,有必要
    certificateError
    在以浏览器为目标的DevTools客户端上覆盖和处理事件。一个补丁发布实施新DevTools方法的使用,以替代证书错误处理浏览器的宽这使得在无头模式忽略证书错误太多。
  • 通过DevTools进行全局证书错误处理:以前,DevTools允许处理单个目标/ WebContents的证书错误,但是当创建新目标(例如,单击target = _blank链接)时,通常无法足够快地发送
    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发行说明)
  • 确保您使用的是最新发布的 Selenium v​​3.141.59 客户端。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5667262.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存