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

Python+Selenium报chrome not reachable如何捕获错误并重启Chrome?

Selenium Chrome不可达错误捕获与自动重启方案

核心实现逻辑

  • 捕获Selenium的WebDriverException异常,判断错误信息中是否包含chrome not reachable标识
  • 封装独立的Chrome Driver初始化函数,统一管理启动配置,方便重启时复用
  • 故障触发时先清理旧Driver的残留进程,再重新初始化实例恢复业务执行

完整代码示例

from selenium import webdriver
from selenium.common.exceptions import WebDriverException
import time

def init_chrome_driver():
    """Chrome Driver初始化函数,可自定义你的启动配置"""
    chrome_options = webdriver.ChromeOptions()
    # 下方替换为你原本的Chrome启动参数,比如无头模式、禁用沙箱等
    # chrome_options.add_argument("--headless=new")
    # chrome_options.add_argument("--no-sandbox")
    # chrome_options.add_argument("--disable-dev-shm-usage")
    driver = webdriver.Chrome(options=chrome_options)
    return driver

# 首次初始化Driver
driver = init_chrome_driver()
# 可配置最大重启次数,避免无限重启
max_retry_count = 3
current_retry = 0

# 你的业务逻辑循环
while current_retry < max_retry_count:
    try:
        # 这里替换为你原本的Selenium业务操作代码
        driver.get("https://example.com")
        print("页面标题:", driver.title)
        time.sleep(5)
        # 业务执行成功重置重试计数
        current_retry = 0

    except WebDriverException as e:
        error_msg = str(e)
        if "chrome not reachable" in error_msg:
            current_retry += 1
            print(f"检测到Chrome不可达,第{current_retry}次尝试重启...")
            # 清理旧进程
            try:
                driver.quit()
            except Exception:
                pass
            # 重启Driver
            driver = init_chrome_driver()
            print("Chrome重启完成,恢复业务执行")
        else:
            # 非目标异常按原有逻辑处理,可自行调整为记录日志
            raise e

print("超过最大重启次数,脚本终止")

优化建议

  • 若需要保留登录态、缓存等会话数据,可在初始化配置中添加--user-data-dir参数指定本地用户数据目录,重启后无需重复登录
  • 生产环境可补充日志记录,留存每次报错的上下文操作、时间等信息,方便后续定位Chrome偶发闪退的根本原因,常见诱因包括内存不足、Chrome自动更新后与Driver版本不匹配、系统资源被抢占等

内容的提问来源于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.30 07:09:02