selenium / seleniumwire 未知错误:无法从未知错误确定加载状态:意外的命令响应

Col*_*urn 35 python selenium selenium-webdriver seleniumwire

这是错误:

selenium.common.exceptions.WebDriverException: Message: unknown error: cannot determine loading status
from unknown error: unexpected command response
  (Session info: chrome=103.0.5060.53)
Run Code Online (Sandbox Code Playgroud)

我正在使用正确的网络驱动程序和 chrome 版本:

这是脚本,它的工作是从普通用户数据目录打开网页并提供响应。

from seleniumwire import webdriver  # Import from seleniumwire


chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("user-data-dir=C:\\selenium") 

driver = webdriver.Chrome(chrome_options=chrome_options)

driver.get('https://katalon.com/
')


for request in driver.requests:
    if request.response:
        print(
            
            request.response.status_code,
            
        )
Run Code Online (Sandbox Code Playgroud)

小智 20

您需要将 Google Chrome 和 Chrome 驱动程序升级到版本 104:

  1. 从这里安装 Google Chrome 测试版:https://www.google.com/chrome/beta/

  2. 手动更新 ChromeDriver 到 104(尚未在brew中)https://chromedriver.storage.googleapis.com/index.html?path=104.0.5112.20/

  3. 设置chrome_options.binary_location

    Windows - “C:\Program Files\Google\Chrome Beta\Application\chrome.exe”

    MacOS - “/Applications/Google Chrome Beta.app/Contents/MacOS/Google Chrome Beta”


Yia*_*sHa 11

非无头 chromedriver 浏览器存在一个已知问题,您可以在此处阅读更多相关信息。

截至目前,还没有针对 chromedriver 版本 103 或更低版本的修复。

编辑:Chromedriver 版本 103 也已修复此问题。从这里下载 chromedriver 的最新 103 版本。

你可以做什么:

  • 按照 Dmytro Durach 的说明升级到 chromedriver 版本 104 并使用 Google 104 Beta 版本。正如chromedriver 版本 104 的补丁说明中所示,该问题已得到明确修复。

  • 使用无头浏览器。有关配置 chromedriver headless 的说明

  • 使用此处找到的隐身解决方法。这似乎对少数人有效。

  • 等待问题解决。据我所知,他们正在积极努力。任何更新都将发布在这里

  • 使用 try... except 块无限重试(不推荐)。


Nir*_*mal 7

chromeDriver 103 版本存在问题,Chromium 社区也提出了同样的问题。

请在下面找到相同的错误 ID,

https://bugs.chromium.org/p/chromedriver/issues/detail?id=4121&q=label%3AMerge-Request-103

您可以看到上述错误线程中的所有对话。

目前,在解决此问题之前,请尝试“将 Chrome 浏览器降级到 v102”和“下载 Selenium Chrome 驱动程序 102”并尝试运行脚本,因为此问题发生在 103 版本中

因此,Selenium 社区已经关闭了该问题,因为该问题与 Chrome 团队有关。 https://github.com/SeleniumHQ/selenium/issues/10799


小智 5

我建立了静态等待;它并不优雅,但它符合我的目的:

import time

time.sleep(5)
Run Code Online (Sandbox Code Playgroud)


Mah*_*hdi 2

我认为这会起作用,但作为临时解决方法。

while True:
    try:
        driver.get('https://katalon.com/')
        break
    except:
        continue
Run Code Online (Sandbox Code Playgroud)