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

求助:Chrome更新后Ubuntu无GUI环境Selenium脚本报DevToolsActivePort不存在

修复DevToolsActivePort文件不存在问题的方案
  • 确保Chrome与Chromedriver版本完全匹配
    Chrome更新后版本会变化,Chromedriver必须和Chrome主版本号一致才能正常工作:

    1. 执行命令查看当前Chrome版本:google-chrome --version
    2. 下载对应版本的Chromedriver(选择适配Linux的版本)
    3. 替换原有的Chromedriver文件,并赋予执行权限:chmod +x /path/to/your/chromedriver
  • 补充无GUI模式的必要启动参数
    仅加--no-sandbox可能不够,需要配置完整的无GUI启动参数,示例Python代码如下:

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    chrome_options = Options()
    # 启用新版无头模式,避免旧模式兼容性问题
    chrome_options.add_argument("--headless=new")
    chrome_options.add_argument("--no-sandbox")
    # 解决/dev/shm空间不足问题
    chrome_options.add_argument("--disable-dev-shm-usage")
    # 指定调试端口,避免端口冲突或DevTools连接异常
    chrome_options.add_argument("--remote-debugging-port=9222")
    # 自定义用户数据目录,避免权限或临时文件异常
    chrome_options.add_argument("--user-data-dir=/tmp/chrome-user-data")
    chrome_options.add_argument("--disable-gpu")
    chrome_options.add_argument("--window-size=1920,1080")
    
    driver = webdriver.Chrome(options=chrome_options)
    
  • 检查文件与目录权限

    1. 确认运行脚本的用户对Chromedriver文件、Chrome安装目录有可执行权限:ls -l /path/to/chromedriver、ls -l /usr/bin/google-chrome
    2. 检查/tmp目录的权限和可用空间:df -h /tmp查看剩余空间,ls -ld /tmp确认权限(正常应为drwxrwxrwt)
    3. 如果/tmp存在问题,可在ChromeOptions中指定自定义临时目录:chrome_options.add_argument("--temp-dir=/path/to/custom-temp"),需确保该目录已创建且有读写权限
  • 清理残留进程
    Chrome更新后可能残留旧进程,导致端口或资源占用:
    执行命令杀掉所有相关进程:

    pkill -f chrome
    pkill -f chromedriver
    

    之后重新运行脚本

  • 指定Chrome二进制文件路径
    部分情况下,Chrome更新后安装路径可能变化,需手动指定:
    在ChromeOptions中添加:

    chrome_options.binary_location = "/usr/bin/google-chrome"
    

    可通过which google-chrome命令确认实际路径

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 10:32:38