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

Selenium启动超9个会话报错:chromedriver.exe无响应求助

解决Selenium启动多Chrome会话超过9个就崩溃的问题

你遇到的核心问题其实是系统资源过载——每个Chrome浏览器会话都会占用大量内存、CPU资源,一次性启动36个远远超出了系统的承载上限,尤其是Windows系统对进程资源的限制会更明显,当资源耗尽时就会触发chromedriver无响应、会话自行关闭的情况。下面是几个针对性的解决方案:

1. 给Chrome添加资源优化启动参数

通过配置Chrome启动选项,砍掉不必要的功能,大幅降低单个实例的资源占用,比如启用无头模式(不需要可视化界面)、禁用图片加载等:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time

url = "website URL"
amount = 36

def generateBrowsers():
    chrome_options = Options()
    # 启用无头模式,节省大量内存资源
    chrome_options.add_argument("--headless=new")
    # 禁用GPU加速(无头模式下不需要)
    chrome_options.add_argument("--disable-gpu")
    # 禁用图片加载,减少网络和内存消耗
    chrome_options.add_argument("--blink-settings=imagesEnabled=false")
    # 禁用扩展、插件,避免额外资源占用
    chrome_options.add_argument("--disable-extensions")
    chrome_options.add_argument("--disable-plugins")
    # 禁用沙箱模式(Windows环境下可能需要)
    chrome_options.add_argument("--no-sandbox")
    # 固定窗口大小(无头模式下可选)
    chrome_options.add_argument("--window-size=1920,1080")

    for x in range(0, amount):
        driver = webdriver.Chrome(executable_path="C:/Users/user/Documents/chromedriver_win32/chromedriver.exe", options=chrome_options)
        driver.get(url)
        time.sleep(3)
        driver.quit()  # 记得关闭浏览器,彻底释放资源

generateBrowsers()

2. 控制并发数,分批启动会话

一次性启动36个实例太激进,系统根本扛不住。可以用线程池/进程池限制同时运行的实例数量,比如每次最多跑8-10个,完成一批再启动下一批:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from concurrent.futures import ThreadPoolExecutor
import time

url = "website URL"
amount = 36
max_concurrent = 8  # 根据你的系统配置调整,建议8-10

def launch_single_browser(_):
    chrome_options = Options()
    chrome_options.add_argument("--headless=new")
    chrome_options.add_argument("--disable-gpu")
    chrome_options.add_argument("--blink-settings=imagesEnabled=false")
    chrome_options.add_argument("--no-sandbox")
    
    driver = None
    try:
        driver = webdriver.Chrome(executable_path="C:/Users/user/Documents/chromedriver_win32/chromedriver.exe", options=chrome_options)
        driver.get(url)
        time.sleep(3)
    finally:
        if driver:
            driver.quit()  # 确保浏览器进程被彻底关闭

def generateBrowsers():
    with ThreadPoolExecutor(max_workers=max_concurrent) as executor:
        executor.map(launch_single_browser, range(amount))

generateBrowsers()

重点提醒:一定要调用driver.quit(),而不是driver.close()——前者会彻底关闭整个浏览器进程,后者只关闭当前标签页,后台进程仍会占用资源,日积月累会把系统拖垮。

3. 调整系统资源配置

打开任务管理器观察启动9个Chrome时的内存、CPU占用率:

  • 如果已经接近100%,先关闭其他不必要的程序,释放资源;
  • 可以适当调大Windows虚拟内存:右键「此电脑」→「属性」→「高级系统设置」→「高级」→「性能设置」→「高级」→「虚拟内存」→「更改」,取消“自动管理所有驱动器的分页文件大小”,手动调大分页文件的最大值和最小值。

4. 确认Chrome与chromedriver版本匹配

版本不兼容也可能导致会话崩溃:查看Chrome版本(设置→关于Chrome),然后下载对应版本的chromedriver,确保两者版本完全一致。

内容的提问来源于stack exchange,提问作者Jack P

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:47:22