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

Ubuntu 16.04中Python Selenium无法运行问题求助

针对Ubuntu 16.04上Selenium ChromeDriver启动失败的解决方案

从你的日志来看,虽然代码里添加了--no-sandbox参数,但Chrome实际启动命令里并没有加载这个参数,而且切换非root用户后依然报错,大概率是参数传递异常、版本不匹配或者系统依赖缺失导致的。下面给你几个针对性的解决思路:

1. 强制确保Chrome与ChromeDriver版本严格匹配

这是Selenium+Chrome组合最容易踩的坑!不同大版本的Chrome必须对应同版本的ChromeDriver:

  • 先查看当前Chrome版本:运行google-chrome --version
  • 下载对应大版本的ChromeDriver,替换/usr/local/bin/chromedriver,并赋予执行权限:chmod +x /usr/local/bin/chromedriver

2. 修正ChromeOptions参数传递写法

你的代码里用了chrome_options=options,在部分Selenium版本中这个参数名已经被重命名为options,可能导致参数没有正确传递到Chrome启动流程中。同时补充几个Ubuntu环境下的兼容参数,修改后的代码如下:

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

path_to_chromedriver = '/usr/local/bin/chromedriver'
options = webdriver.ChromeOptions()

# 优化参数配置,移除重复项并添加兼容参数
options.add_argument("start-maximized")
options.add_argument('--disable-extensions')
options.add_argument('--headless=new')  # 新版无头模式,稳定性更强(Chrome版本>=96适用)
options.add_argument('--disable-gpu')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')  # 解决Ubuntu默认/dev/shm空间不足的问题
options.add_argument('--window-size=1920,1080')  # 无头模式下指定窗口尺寸,避免渲染异常

service_log_path = "/tmp/local/chromedriver.log"
service_args = ['--verbose']

# 替换chrome_options为标准的options参数
driver = webdriver.Chrome(
    executable_path=path_to_chromedriver,
    options=options,
    service_args=service_args,
    service_log_path=service_log_path
)

3. 补充Ubuntu 16.04的Chrome运行依赖

Ubuntu 16.04默认缺少一些Chrome必需的系统库,即使无头模式也需要安装:

sudo apt-get update
sudo apt-get install -y libxss1 libappindicator1 libindicator7 libnss3-tools libgconf-2-4

4. 检查非root用户的权限配置

如果用非root用户运行:

  • 确保该用户对ChromeDriver有执行权限:sudo chown your_username:your_username /usr/local/bin/chromedriver
  • 检查/tmp目录权限(Chrome会在这里创建临时文件):ls -ld /tmp,正常权限应该是drwxrwxrwt,如果不是可以修复:sudo chmod 1777 /tmp

5. 先验证Chrome单独启动是否正常

先跳过Selenium,手动用非root用户启动Chrome无头模式,确认Chrome本身能正常运行:

google-chrome --headless --no-sandbox --disable-dev-shm-usage https://www.google.com

如果这个命令报错,说明是Chrome本身的问题,优先解决Chrome的启动异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:23:38