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

Ubuntu下运行Selenium Python脚本报错:Chrome启动失败

解决Ubuntu普通用户运行Selenium Headless Chrome时的"chrome failed to start"错误

碰到这个chrome failed to start的报错,在Ubuntu普通用户环境下大概率是权限不足、启动参数不全或者版本不匹配导致的,我给你整理几个靠谱的解决步骤:

1. 先确认Chromedriver与Chrome版本完全匹配

这是最容易踩的坑!Chromedriver的版本必须和你系统里安装的Google Chrome版本完全对应(大版本一致,小版本尽量匹配)。

  • 先查Chrome版本:google-chrome --version
  • 下载对应版本的Chromedriver替换掉你现有文件
  • 别忘了给Chromedriver加可执行权限:chmod +x /home/admin/web/web.com/public_html/scripts/az/chromedriver

2. 补充普通用户专属的Headless启动参数

普通用户没有root权限,Headless Chrome需要额外参数绕过沙箱和资源限制,修改你的脚本Options部分:

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

options = Options()
options.add_argument('--headless=new')  # 新版Headless模式,兼容性更好
options.add_argument('--disable-gpu')
options.add_argument('--no-sandbox')  # 普通用户必须加,绕过Chrome沙箱限制
options.add_argument('--disable-dev-shm-usage')  # 解决Ubuntu下/dev/shm空间不足的问题
options.add_argument('--remote-debugging-port=9222')  # 可选,方便调试启动失败问题
# 若Chrome不在默认路径,手动指定二进制文件位置
options.binary_location = "/usr/bin/google-chrome"

# 注意:新版Selenium已经废弃chrome_options参数,改用options
driver = webdriver.Chrome(executable_path="/home/admin/web/web.com/public_html/scripts/az/chromedriver", options=options)

3. 检查文件与目录的权限

  • 确保普通用户对Chromedriver所在目录和文件有读+执行权限:
    执行ls -l /home/admin/web/web.com/public_html/scripts/az/chromedriver查看权限,若普通用户(other列)没有rx权限,执行:chmod o+rx /home/admin/web/web.com/public_html/scripts/az/chromedriver
  • 测试普通用户能否单独启动Headless Chrome:执行google-chrome --headless --dump-dom https://google.com,如果这个命令报错,说明Chrome本身的权限或安装有问题,需要先修复Chrome的访问权限。

4. 排查环境变量问题

有些情况下普通用户的PATH里没有Chrome的路径,你可以先在普通用户终端里执行which google-chrome,如果返回空,说明需要把Chrome的路径(比如/usr/bin)加到普通用户的PATH里,或者直接在脚本里用options.binary_location指定Chrome路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:13:10