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

Ubuntu升级至22.04后Selenium+Firefox连接拒绝错误求助

解决Ubuntu 22.04 LTS升级后Selenium+Firefox连接拒绝(os error 111)问题

以下是针对问题的分步解决方案:

1. 匹配Firefox与geckodriver版本

升级后系统自带的Firefox版本可能更新,导致旧版geckodriver兼容性失效:

  • 查看当前Firefox版本:
    firefox --version
    
  • 下载与Firefox版本对应的geckodriver,替换系统中现有版本,然后赋予执行权限:
    chmod +x /usr/local/bin/geckodriver
    

2. 配置虚拟显示解决X服务器连接失败

Jammy LTS环境下无图形界面运行脚本时,X服务未启动会导致连接失败:

  • 安装Xvfb虚拟显示工具:
    sudo apt install xvfb
    
  • 两种运行方式:
    • 用xvfb-run包裹脚本执行:
      xvfb-run python your_script.py
      
    • 在Selenium代码中配置无头模式及相关参数:
      from selenium.webdriver.firefox.options import Options
      
      options = Options()
      options.add_argument('--headless')
      options.add_argument('--no-sandbox')
      options.add_argument('--disable-dev-shm-usage')
      driver = webdriver.Firefox(options=options)
      

3. 修复libEGL初始化失败问题

缺失图形依赖库会导致该错误,安装对应组件:

sudo apt install libgl1-mesa-glx libegl1-mesa libgbm1
sudo apt update && sudo apt upgrade mesa-*

4. 调整运行用户与环境变量

  • 避免用root用户运行脚本(/run/user/0是root专属目录,普通用户运行时会有权限冲突),切换到原普通执行用户。
  • 检查并设置DISPLAY环境变量:
    export DISPLAY=:0
    python your_script.py
    

5. 验证基础连接

  • 直接启动geckodriver查看日志,确认自身可正常运行:
    geckodriver --log trace
    
  • 运行极简测试脚本验证Selenium与Firefox的连接:
    from selenium import webdriver
    from selenium.webdriver.firefox.options import Options
    
    options = Options()
    options.add_argument('--headless')
    try:
        driver = webdriver.Firefox(options=options)
        driver.get("https://www.google.com")
        print(driver.title)
    finally:
        driver.quit()
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 03:10:44