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

求助:Cypress执行频繁中断,cy.visit()测试加载异常如何解决?

Cypress执行cy.visit()时频繁中断/崩溃的排查方案
  • 检查浏览器兼容性
    Cypress对Chromium内核浏览器(Chrome、Edge等)的版本有明确支持范围,建议优先使用Cypress自带的Chrome Canary版本启动测试,规避本地浏览器的插件、版本不兼容等问题。

  • 禁用浏览器扩展
    广告拦截、VPN、脚本防护类浏览器扩展会干扰Cypress的注入逻辑,测试前可以手动禁用所有扩展,或者直接使用浏览器隐身模式运行测试(Cypress默认会启用隐身,但可手动确认)。

  • 自定义浏览器启动参数
    在cypress.config.js中添加启动参数,禁用可能引发崩溃的特性:

    module.exports = defineConfig({
      e2e: {
        setupNodeEvents(on, config) {
          on('before:browser:launch', (browser = {}, launchOptions) => {
            if (browser.family === 'chromium' && browser.name !== 'electron') {
              // 禁用GPU加速,解决显卡驱动兼容性问题
              launchOptions.args.push('--disable-gpu');
              // 关闭沙箱,避免权限限制导致的崩溃
              launchOptions.args.push('--no-sandbox');
              launchOptions.args.push('--disable-dev-shm-usage');
            }
            return launchOptions;
          });
        },
      },
    });
    
  • 排查网络代理问题
    环境中的代理设置可能导致Cypress无法正常访问目标网站。可以在Cypress设置中关闭代理,或在配置文件中指定代理规则:

    module.exports = defineConfig({
      e2e: {
        // 指定代理地址
        // proxyUrl: 'http://your-proxy-address:port',
        // 或禁用所有代理
        noProxy: '*'
      },
    });
    
  • 检查系统资源占用
    运行测试时打开任务管理器,查看CPU、内存占用情况。内存不足(如低于4GB)或CPU过载会直接导致浏览器崩溃,建议关闭其他高资源占用程序后重试。

  • 重置Cypress环境
    除了删除Cypress安装文件夹,还需清除缓存并重新安装依赖:

    npx cypress cache clear
    npm install
    
  • 适配目标网站安全策略
    部分网站的CSP(内容安全策略)或反爬机制会阻止Cypress脚本注入,可通过cy.visit()的钩子临时调整:

    cy.visit('your-target-url', {
      onBeforeLoad: (win) => {
        win.document.head.insertAdjacentHTML(
          'beforeend',
          '<meta http-equiv="Content-Security-Policy" content="default-src *">'
        );
      }
    });
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 13:05:39