You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Selenium登录后循环访问页面报WebDriverException如何解决

问题原因

你碰到的WebDriverException: cannot determine loading status from unknown error: unexpected command response是Chrome 103版本与低于4.3.0版本的Selenium存在兼容bug导致的,和你写的登录、页面跳转业务逻辑无关。Chrome 103调整了页面加载阶段的响应返回逻辑,旧版Selenium无法正确识别返回状态就会抛出这个异常,哪怕页面实际已经加载完成。

修复方案

按优先级从高到低选择以下任意一种方案即可:

  • 升级Selenium到4.3.0及以上版本,官方已经在该版本修复了和Chrome 103的兼容问题,执行以下命令升级后无需修改原有业务代码:
pip install --upgrade selenium
  • 如果暂时无法升级Selenium,可以在Chrome启动参数中添加配置,禁用触发该bug的Chrome特性,在你原有options配置段新增一行即可:
options.add_argument('--disable-features=PaintHolding')
  • 给循环跳转逻辑增加重试兜底,该异常属于偶发的通信识别错误,重试即可正常执行,修改后的爬取循环参考代码如下:
from selenium.webdriver.support.ui import WebDriverWait
import time

for m in month_list:
    url = f"https://www.example.com/data/{m}"
    max_retry = 3
    for retry_cnt in range(max_retry):
        try:
            driver.get(url)
            # 等待页面DOM完全加载后再执行后续操作
            WebDriverWait(driver, 10).until(
                lambda d: d.execute_script("return document.readyState") == "complete"
            )
            break
        except WebDriverException as e:
            if retry_cnt == max_retry - 1:
                raise e
            time.sleep(1)

    page_source = driver.page_source
    soup = BeautifulSoup(page_source, "html.parser")
    # 后续爬取逻辑

补充注意:循环爬取时不要在driver.get()执行后立刻读取page_source,增加显式等待判断页面加载状态,也能大幅降低这类异常的出现概率。

内容的提问来源于stack exchange,提问作者Diana Mele

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 16:09:21