【问题标题】:Selenium fails with "TLS certificate errors will be ignored for this session" (in python), how to resolve it?Selenium 失败并显示“此会话将忽略 TLS 证书错误”(在 python 中),如何解决?
【发布时间】:2024-04-29 06:40:02
【问题描述】:

我正在使用:

Firefox version: 63.0.3 (64-bit)

geckodriver 0.23.0

我正在尝试检索特定网页,但我不断收到以下消息: “此会话将忽略 TLS 证书错误” 在我的 geckodriver.log 中。 Firefox 无法使用 selenium 加载网页。

所以为了获得更多信息,我在我的脚本中添加了:

opts.log.level = "trace"

这是我得到的:

geckodriver::marionette DEBUG 连接到 Marionette

木偶踪迹 0 -> [0,1,"WebDriver:NewSession",{"acceptInsecureCerts":true,"browserName":"firefox"}]

Marionette WARN TLS 证书错误将被忽略 session Marionette DEBUG [4294967297] 框架脚本已加载

木偶调试 [4294967297] 框架脚本已注册

木偶踪迹 0

webdriver::server 调试 POST /session/4394672f-e908-4847-99af-2214ceabd4c0/url {“url”: "http://web.nli.org.il"} 木偶踪迹 0 -> [0,2,"WebDriver:Navigate",{"url":"http://web.nli.org.il"}]

Marionette 调试 [4294967297] 在卸载前收到 DOM 事件 about:blank Marionette DEBUG [4294967297] 收到 DOM 事件页面隐藏 for about:blank Marionette DEBUG [4294967297] 收到 DOM 事件 DOMContentLoaded 为 http://web.nli.org.il/ Marionette DEBUG [4294967297] Received DOM event pageshow for http://web.nli.org.il/ 木偶追踪 0

webdriver::server 调试

webdriver::server 调试 -> 删除 /session/4394672f-e908-4847-99af-2214ceabd4c0 木偶追踪 0 -> [0,3,"Marionette:Quit",{"flags":["eForceQuit"]}]

Marionette INFO 停止监听端口 40787 Marionette TRACE 0

搜索了答案,但找不到解决问题的方法,有人有建议吗?

【问题讨论】:

  • 请避免对错误使用<blockquote> 标记,因为它们会自动换行,调试错误会变得很困难。
  • 知道了,谢谢你的意见。

标签: python-3.x selenium firefox geckodriver


【解决方案1】:

此错误消息...

TLS certificate errors will be ignored for this session

...是从Marionette服务器webdriver / geckodriverWARNING 消息>

根据错误堆栈跟踪,尽管您看到此警告,但您的脚本/程序仍然能够:

  • 访问网页http://web.nli.org.il/

    Marionette DEBUG [4294967297] Received DOM event DOMContentLoaded for http://web.nli.org.il/ 
    Marionette DEBUG [4294967297] Received DOM event pageshow for http://web.nli.org.il/
    
  • 最后,服务器正在为会话调用DELETE 端点:

    webdriver::server DEBUG -> DELETE /session/4394672f-e908-4847-99af-2214ceabd4c0 
    
  • 哪个木偶成功了:

    Marionette TRACE 0 -> [0,3,"Marionette:Quit",{"flags":["eForceQuit"]}]
    Marionette INFO Stopped listening on port 40787
    

结论

这条WARNING 消息对您的@Tests 来说不是一个阻塞问题,您可以放心地忽略它。

【讨论】:

  • 您的网页已正确加载,但您在 DOM Tree 中的元素可见之前就太早地调用了方法 driver.quit()。因此,作为用户,您看不到它。您需要等待一段时间才能看到整个 DOM Tree 呈现。
  • 我同意,谢谢。那么为什么网页没有加载呢?这是什么原因?我尝试过的所有其他网站都可以轻松加载。
  • 我在 driver.quit() 之前的末尾添加了 time.sleep(50) 秒,就在脚本终止之前。但结果相同:/
最近更新 更多