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
相关产品推荐
相关产品推荐

