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

Selenium捕获Chrome not reachable异常及重启驱动方案咨询

解决方法

1. 先导入缺失的异常类

你之前遇到NameError: name 'WebDriverException' is not defined是因为没有导入Selenium的对应异常类,首先在代码头部添加导入语句:

from selenium.common.exceptions import WebDriverException

2. 调整代码逻辑实现驱动自动重启

核心逻辑是:捕获到chrome not reachable异常时,先清理旧驱动进程,再重启驱动,可选择重试当前失败的商品。修改后的参考代码如下:

# 初始化驱动
driver = driver.start_driver()

for index, row in listado_productos.iterrows():
    # 单条商品最多重试1次(可自定义次数)
    retry_flag = True
    while retry_flag:
        try:
            driver.get(url)
            amount = driver.find_element(By.CSS_SELECTOR, "div.ui-header_subtitle a.test span.ui-subtitle").text
            # 省略其余业务逻辑
            db.update_article_date(article_df)
            # 执行成功退出重试循环
            retry_flag = False
        except WebDriverException as e:
            # 判断是否是Chrome不可达异常
            if "chrome not reachable" in str(e):
                # 先清理旧驱动残留
                try:
                    driver.quit()
                except:
                    pass
                # 重启驱动
                driver = driver.start_driver()
                # 保持retry_flag为True,重试当前商品
            else:
                # 其他WebDriver异常,标记为错误,不重试
                db.update_article_error(row['product_id'])
                retry_flag = False
        except Exception as e:
            # 其余业务异常,标记错误
            db.update_article_error(row['product_id'])
            retry_flag = False

# 最终关闭驱动
try:
    driver.quit()
except:
    pass

注意事项

  • 旧驱动调用quit()方法可以彻底关闭Chrome进程和驱动进程,避免系统残留僵尸进程占用资源
  • 可以根据实际需求调整单条商品的重试次数,避免无限重试卡住流程

内容的提问来源于stack exchange,提问作者Cristian Avendaño

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 20:27:05