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

Selenium报错:Chrome突然无法启动,会话创建失败

Chrome爬虫SessionNotCreatedException问题排查与解决

问题描述

报错信息

Traceback (most recent call last):
  File "/home/user/myproject/scraping_all.py", line 29, in <module>
    driver = webdriver.Chrome(options=options)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/myproject/myprojectenv/lib/python3.11/site-packages/selenium/webdriver/chrome/webdriver.py", line 45, in __init__
    super().__init__(
  File "/home/user/myproject/myprojectenv/lib/python3.11/site-packages/selenium/webdriver/chromium/webdriver.py", line 56, in __init__
    super().__init__(
  File "/home/user/myproject/myprojectenv/lib/python3.11/site-packages/selenium/webdriver/remote/webdriver.py", line 208, in __init__
    self.start_session(capabilities)
  File "/home/user/myproject/myprojectenv/lib/python3.11/site-packages/selenium/webdriver/remote/webdriver.py", line 292, in start_session
    response = self.execute(Command.NEW_SESSION, caps)["value"]
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/myproject/myprojectenv/lib/python3.11/site-packages/selenium/webdriver/remote/webdriver.py", line 347, in execute
    self.error_handler.check_response(response)
  File "/home/user/myproject/myprojectenv/lib/python3.11/site-packages/selenium/webdriver/remote/errorhandler.py", line 229, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: Chrome failed to start: exited normally.
  (unknown error: unable to discover open pages)
  (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)

环境信息

  • Google Chrome版本:Google Chrome 120.0.6099.109
  • 爬虫ChromeOptions配置代码:
options = Options()
options.add_argument("start-maximized")
options.add_argument('--headless=new')
options.add_argument('--disable-dev-shm-usage')
options.add_argument('--disable-gpu')
options.add_argument('--no-sandbox')
options.add_argument('--user-data-dir=/home/user/myproject')
options.add_argument("--remote-debugging-port=9222")
driver = webdriver.Chrome(options=options)

问题排查与解决

1. 匹配ChromeDriver与Chrome版本

ChromeDriver版本必须和Chrome版本完全对应,你的Chrome是120.0.6099.109,需执行以下操作:

  • 运行chromedriver --version查看当前版本
  • 若版本不匹配,下载同版本的ChromeDriver替换现有文件

2. 修复user-data-dir配置错误

你设置的--user-data-dir=/home/user/myproject指向项目根目录,并非Chrome合法的用户数据目录,会导致启动失败:

  • 直接删除该参数,使用默认临时用户数据目录
  • 或指定一个空的专用目录,比如--user-data-dir=/home/user/myproject/chrome_profile,确保目录存在且当前用户有读写权限

3. 移除无效/冲突参数

  • start-maximized在--headless=new模式下无效,可移除
  • 若无远程调试需求,删除--remote-debugging-port=9222,避免端口占用或启动冲突
  • --disable-gpu在新版Chrome无头模式下已无需配置,可移除

4. 验证系统权限与依赖

  • 确保运行脚本的用户对/usr/bin/google-chrome有执行权限
  • 检查无头模式依赖库,比如libnss3、libgconf-2-4,缺失则通过包管理器安装(如apt install libnss3 libgconf-2-4)

调整后的示例配置

options = Options()
options.add_argument('--headless=new')
options.add_argument('--disable-dev-shm-usage')
options.add_argument('--no-sandbox')
# 可选:指定专用用户数据目录
# options.add_argument('--user-data-dir=/home/user/myproject/chrome_profile')
driver = webdriver.Chrome(options=options)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 19:05:28