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

Ubuntu 20.04环境下Python Selenium调用Chrome报错‘chrome not reachable’及Crashpad权限问题求助

解决Ubuntu 20.04下Selenium Chrome 'chrome not reachable' 错误

从你提供的错误日志和命令行输出来看,核心问题是Chrome无法创建Crashpad崩溃报告目录(权限被拒绝),这直接导致Selenium无法与Chrome建立连接,最终抛出chrome not reachable异常。下面是分步解决方案:

1. 修复/tmp目录权限问题

Chrome需要在/tmp目录下创建Crashpad文件夹来存储崩溃日志,但当前你的/tmp目录或Crashpad子目录权限不足。执行以下步骤:

  • 首先重置/tmp目录的默认权限(正常应为1777,允许所有用户读写执行且只能删除自己的文件):
    sudo chmod 1777 /tmp
    
  • 如果/tmp/Crashpad目录已经存在,先删除它避免权限残留:
    sudo rm -rf /tmp/Crashpad
    

2. 优化Selenium代码配置

你的代码中有几个参数需要调整,避免连接冲突和资源限制:

  • 启用--disable-dev-shm-usage:Ubuntu默认的/dev/shm共享内存空间很小,无头模式下Chrome容易因内存不足崩溃,这个参数会让Chrome使用临时文件替代共享内存。
  • 移除--remote-debugging-port=9222:除非你需要手动远程调试Chrome,这个参数会干扰Selenium的默认连接逻辑,导致会话无法建立。
  • 使用--headless=new:Chrome 112+推荐使用新的无头模式,稳定性比旧版--headless更好。
  • 用webdriver_manager自动管理chromedriver版本:避免手动指定路径导致的版本不匹配问题。

修改后的完整代码:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

def do_ss():
    browser = None
    # 自动安装匹配当前Chrome版本的chromedriver
    service = Service(ChromeDriverManager().install())
    options = Options()
    options.binary_location='/usr/bin/google-chrome'
    options.add_argument("--no-sandbox")
    options.add_argument("--disable-dev-shm-usage")
    options.add_argument("--headless=new")
    options.add_argument("--disable-gpu")  # 兼容旧版Chrome的无头模式

    try:
        browser = webdriver.Chrome(service=service, options=options)
        # 可添加测试访问验证,比如:
        # browser.get("https://www.google.com")
        # print("Page title:", browser.title)
    finally:
        # 确保无论是否报错都关闭浏览器
        if browser:
            browser.quit()

do_ss()

3. 验证Chrome独立启动是否正常

修复权限后,先在命令行单独启动Chrome,确认没有权限错误:

google-chrome --no-sandbox --headless=new --disable-dev-shm-usage

如果命令执行后没有报错,说明Chrome可以正常运行,再运行你的Selenium代码。

额外排查点

  • 检查Chrome与chromedriver版本匹配:运行google-chrome --version和chromedriver --version,确保两者大版本号一致(比如Chrome 124.x对应chromedriver 124.x)。
  • 确认当前用户对Chrome安装目录(/usr/bin/google-chrome)有执行权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 21:27:38