Ubuntu更新Chrome后Selenium运行崩溃问题排查求助
问题核心原因
Chrome与ChromeDriver有强版本绑定校验规则,哪怕大版本号一致,小版本号不匹配也会直接触发启动崩溃,你看到的Chrome has crashed报错就是典型的版本不匹配表现,同时你贴的配置代码还存在参数弃用、必要配置缺失的问题,按以下步骤操作即可修复:
修复步骤
- 第一步:核对双端精确版本
先在服务器执行命令获取Chrome完整版本号:
输出示例:google-chrome --versionGoogle Chrome 102.0.5005.112,必须下载和这个版本号完全对应的ChromeDriver,同大版本下小版本号不一致(比如你现在用的102.*.61)完全无法兼容。 - 第二步:替换正确版本的ChromeDriver
先删除旧版本残留:
把下载好的对应版本ChromeDriver上传到sudo rm -f /usr/local/bin/chromedriver/usr/local/bin/路径后,添加执行权限:
执行sudo chmod +x /usr/local/bin/chromedriverchromedriver --version校验版本,确认输出的版本号和Chrome版本前三位完全一致即可。 - 第三步:修正Selenium配置代码
你现有代码存在无效空行、参数名弃用的问题:单独写的一行chrome_options没有任何实际作用可直接删除;高版本Selenium已经不再支持chrome_options传参,需要改为options;无GUI服务器环境还缺少无头启动参数。修正后可直接使用的代码如下:from selenium.webdriver.chrome.options import Options from selenium import webdriver chrome_options = Options() # 显式指定Chrome二进制路径,避免系统调用到其他位置安装的版本 chrome_options.binary_location = "/usr/bin/google-chrome" chrome_options.add_argument("--no-sandbox") chrome_options.add_argument("--disable-dev-shm-usage") # 无GUI服务器环境必须加无头参数,桌面环境可注释掉这行 chrome_options.add_argument("--headless=new") driver = webdriver.Chrome(options=chrome_options) - 第四步:其他异常排查
如果版本匹配、代码修正后仍然崩溃,逐一排查以下问题:- 执行
ldd /usr/bin/google-chrome | grep not,如果有输出not found的依赖包,直接用apt/yum安装对应缺失的系统依赖即可 - 确认脚本运行用户对Chrome、ChromeDriver路径有读取和执行权限,权限不足也会触发进程启动后直接退出
- 不要在启动参数里指定被占用的调试端口,避免进程启动失败
- 执行
内容的提问来源于stack exchange,提问作者Supra Chan
相关产品推荐
相关产品推荐

