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

使用Selenium时Chrome启动后立即崩溃的问题求助

解决Selenium启动Chrome后立即崩溃的问题

我之前也碰到过一模一样的情况!排除了实例过多和chromedriver与Chrome版本不匹配这两个常见原因后,你可以试试下面这些排查方向:

  • 检查无头模式配置:如果是在无图形界面的环境(比如服务器、CI/CD)运行,没正确配置无头模式很容易导致崩溃。现在Chrome推荐用新的无头模式参数,试试这么写:

    const { Builder } = require('selenium-webdriver');
    const chrome = require('selenium-webdriver/chrome');
    
    const chromeOptions = new chrome.Options();
    chromeOptions.addArguments('--headless=new'); // 新版无头模式,替代旧的--headless
    chromeOptions.addArguments('--disable-gpu'); // 部分环境需要这个参数避免渲染问题
    chromeOptions.addArguments('--window-size=1920,1080'); // 可选,指定窗口尺寸
    
    const driver = await new Builder()
      .forBrowser('chrome')
      .setChromeOptions(chromeOptions)
      .build();
    
  • 避免用户数据目录冲突:Chrome默认的用户数据目录可能有缓存或权限问题,试试指定一个临时的干净目录:

    chromeOptions.addArguments('--user-data-dir=/tmp/chrome-test-temp'); // 临时目录路径可自定义
    chromeOptions.addArguments('--no-sandbox'); // Linux环境下非root用户运行时常用,避免沙箱权限问题
    
  • 处理未捕获的Promise拒绝:你看到的UnhandledPromiseRejectionWarning提示很关键——这说明代码里的Promise没有被正确捕获异常,可能掩盖了真正的崩溃原因。给所有异步操作加上try/catch,确保能拿到完整错误信息:

    let driver;
    try {
      driver = await new Builder().forBrowser('chrome').setChromeOptions(chromeOptions).build();
      // 你的单元测试逻辑
      await driver.get('https://your-test-url.com');
      // ...其他操作
    } catch (error) {
      console.error('测试崩溃详情:', error); // 这里会打印真正的错误原因
    } finally {
      // 确保无论成功失败都关闭driver,避免残留实例
      if (driver) await driver.quit();
    }
    
  • 禁用扩展和插件:Chrome安装的第三方扩展可能干扰Selenium的正常运行,启动时禁用所有扩展试试:

    chromeOptions.addArguments('--disable-extensions');
    chromeOptions.addArguments('--disable-plugins');
    
  • 检查系统资源:如果是批量运行测试,系统内存不足也可能导致Chrome启动即崩溃,可以查看系统的内存占用情况,必要时减少并行测试的数量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:24:17