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

Cypress自动化Google登录时遇ResizeObserver循环超限错误求助

解决Cypress中Google登录时ResizeObserver循环超限的未捕获异常问题

问题原因

ResizeObserver loop limit exceeded 是应用代码触发的未捕获异常,Cypress默认会将这类异常判定为测试失败,导致你的Google登录流程测试中断。

解决方案

方案1:在单个测试中忽略该异常

在你的测试块中添加uncaught:exception事件监听,匹配目标错误并返回false,阻止Cypress标记测试失败:

describe('empty spec', () => {
  // 拦截未捕获异常,忽略ResizeObserver相关错误
  Cypress.on('uncaught:exception', (err) => {
    if (err.message.includes('ResizeObserver loop limit exceeded')) {
      return false;
    }
  });

  it('login multi domain ', () => {
    cy.visit('/login');
    cy.get('form > .flex').click({force:true});

    cy.origin(`https://accounts.google.com`, ()=>{
        cy.get("#identifierId").type("user");
        cy.get(".VfPpkd-LgbsSe-OWXEXe-k8QpJ").click({force:true});
        cy.get(`#password`).type("pass");
        cy.get(".VfPpkd-LgbsSe-OWXEXe-k8QpJ").click({force:true});
    })
  })
})

方案2:全局配置(适用于多个测试场景)

如果多个测试都遇到该错误,可在Cypress的全局支持文件中添加监听,让所有测试自动忽略该异常:

  1. 打开cypress/support/e2e.js(或旧版本的cypress/support/index.js)
  2. 添加以下代码:
Cypress.on('uncaught:exception', (err) => {
  // 匹配ResizeObserver循环超限错误,返回false跳过失败判定
  if (err.message.includes('ResizeObserver loop limit exceeded')) {
    return false;
  }
});

注意事项

  • 返回false仅针对指定异常生效,其他未捕获异常仍会正常触发测试失败,不影响测试的错误检测能力
  • 若异常是在Google登录页面(accounts.google.com)触发的,可在cy.origin块内添加同样的监听逻辑,但该错误通常源于你的应用代码,主测试块的监听即可覆盖

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 15:00:50