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

Ubuntu下Selenium调用ChromeDriver启动异常问题求助

解决ChromeDriver启动异常(exited abnormally)的方案

先梳理下你目前的情况:已经安装了Selenium和ChromeDriver,尝试了指定路径、virtualenv、设置777权限,但调用webdriver.Chrome()时还是报错Chrome异常退出,且当前有两个Chrome窗口在运行。结合你的报错信息和环境配置,给你几个针对性的解决思路:

1. 先解决版本不匹配的潜在问题

从你的环境信息看,存在两个关键矛盾点:

  • 实际系统中的ChromeDriver版本是2.35,但pip安装的chromedriver包是2.24.1,这个第三方封装包和你直接安装的ChromeDriver存在冲突,建议先卸载它:
    pip uninstall chromedriver -y
    
  • ChromeDriver和Chrome浏览器版本必须严格对应!ChromeDriver 2.35仅支持Chrome 62-64版本,如果你当前的Chrome版本高于64或者低于62,肯定会启动失败。先检查你的Chrome版本:
    google-chrome --version
    
    如果版本不匹配,下载对应版本的ChromeDriver替换掉当前的/usr/bin/chromedriver,替换后记得重新设置权限:
    chmod 777 /usr/bin/chromedriver
    

2. 处理已有Chrome窗口的冲突

当已有Chrome实例运行时,webdriver默认会尝试使用当前用户数据目录,容易导致锁死或资源冲突。可以通过两种方式解决:

  • 方式一:关闭所有Chrome窗口并清理残留进程后再启动webdriver:
    pkill chrome
    
  • 方式二:在启动webdriver时指定一个独立的用户数据目录,避免和现有实例冲突:
    from selenium import webdriver
    
    options = webdriver.ChromeOptions()
    # 指定一个临时目录作为独立用户数据目录
    options.add_argument('--user-data-dir=/tmp/chrome_test_profile')
    d = webdriver.Chrome(options=options)
    

3. 添加Linux环境下的必要启动参数

在Linux(尤其是root用户)运行ChromeDriver时,需要添加几个关键参数来规避沙箱和内存共享的问题,这是非常常见的坑:

from selenium import webdriver

options = webdriver.ChromeOptions()
# 禁用沙箱模式,root用户必须添加此参数
options.add_argument('--no-sandbox')
# 禁用/dev/shm的使用,避免内存不足导致的异常
options.add_argument('--disable-dev-shm-usage')
# 可选:如果不需要可视化界面,启用无头模式
options.add_argument('--headless')
# 可选:禁用GPU加速,避免部分环境下的显卡兼容问题
options.add_argument('--disable-gpu')

d = webdriver.Chrome(options=options)

4. 验证ChromeDriver本身的可用性

先单独运行ChromeDriver,确认驱动本身能正常启动,排除文件损坏的问题:

chromedriver

如果能输出类似Starting ChromeDriver 2.35.528139 on port 9515的信息,说明驱动本身没问题;如果启动失败,重新下载对应版本的驱动即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:23:02