如何忽略TestCafe中的“超出ResizeObserver循环限制”

2023-12-21

我目前正在使用 TestCafe 进行一些 e2e 测试。我遇到了以下错误

   1) - Error in Role initializer -
      A JavaScript error occurred on "http://localhost:3000/".
      Repeat test actions in the browser and check the console for errors.
      If you see this error, it means that the tested website caused it. You can fix it or disable tracking JavaScript errors in TestCafe. To do the latter, enable the "--skip-js-errors" option.
      If this error does not occur, please write a new issue at:
      "https://github.com/DevExpress/testcafe/issues/new?template=bug-report.md".
      
      JavaScript error details:
      ResizeObserver loop limit exceeded
          No stack trace available

一些研究表明ResizeObserver loop limit exceeded问题是良性错误 https://stackoverflow.com/a/50387233/1596288.

但是,这导致我的测试失败。有什么方法可以在不使用的情况下忽略这个特定错误--skip-js-errors标志,因为我不想因为这一问题而忽略所有 JavaScript 错误


据我了解,此错误发生在ResizeObserver无法在单个动画帧内提供所有观察结果。该书的作者ResizeObserver规范确保可以安全地忽略它:超出 ResizeObserver 循环限制 https://stackoverflow.com/questions/49384120/resizeobserver-loop-limit-exceeded#comment86691361_49384120

Chrome 和 Firefox 默认情况下不显示它。只有当你设置显式的时候你才能捕获它onerror处理程序:

window.onerror = e => console.log(e);

您可以看到此错误在没有 TestCafe 的 Google 登录页面上重现。我添加了一个onerror处理程序到页面并得到ResizeObserver loop completed with undelivered notifications.在火狐和ResizeObserver loop limit exceeded在 Chrome 中。

作为解决方法,您可以指定--skip-js-errors启动 TestCafe 时标记。我承认这不是最好的方法,因为您将抑制测试页面上的所有 Javascript 错误。

更可靠的方法是在测试中显式添加全局窗口错误处理程序客户端脚本 https://devexpress.github.io/testcafe/documentation/using-testcafe/common-concepts/inject-scripts-into-tested-pages.html:

import { Selector, t } from 'testcafe';

// Constants
const gmailEmailInput       = Selector("#identifierId");
const gmailNextButton       = Selector(".CwaK9");
const gmailPasswordInput    = Selector("input[type='password']");

const explicitErrorHandler = () => {
    window.addEventListener('error', e => {
        if(e.message === 'ResizeObserver loop completed with undelivered notifications.' || 
            e.message === 'ResizeObserver loop limit exceeded') {
            e.stopImmediatePropagation();
        }
    })
}

fixture("Gmail login test")
    .clientScripts({ content: `(${explicitErrorHandler.toString()})()` });

test("Not trigger JS error when logging in to Gmail", async testController => {
    await testController
        .navigateTo("https://mail.google.com")
        .typeText(gmailEmailInput, "[email protected] /cdn-cgi/l/email-protection")
        .click(gmailNextButton)
        .typeText(gmailPasswordInput, "password")
});

我复制粘贴了解决方法here https://github.com/DevExpress/testcafe/issues/4857#issuecomment-598775956.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何忽略TestCafe中的“超出ResizeObserver循环限制” 的相关文章

  • HTML/VBA Click 事件未触发

    这是我第一次在 StackOverflow 上发布问题 到目前为止 我已经能够通过 VBA 帮助论坛解决我的大部分问题 我的问题很简单 我有一个自动数据拉取 我需要在其中导出数据 我过去曾在这方面取得过成功 但这次略有不同 我尝试单击以生成
  • VBA / HTML / jQuery 选择自动完成 - 在列表中选择

    我正在尝试使用 Excel 中的 VBA 在网站的列表中选择一个值 这不是一个 正常列表 该网站使用 jQuery 选择自动完成 如下所示 example http davidwalsh name demo jquery chosen ph
  • 如何在ASP.NET Webform中使用Jquery表单插件?

    我遇到了这个插件 http malsup com jquery form getting started http malsup com jquery form getting started 我想知道如何在 ASP NET WebForm
  • 非 DOM 对象上的 jQuery 自定义事件

    我最近阅读了一些代码 其功能如下 bob name Bob Smith rank 7 bob bind nameChanged function bob trigger nameChanged 这似乎有效 但我在 jQuery 文档或源代码
  • Node js 使用中间件重定向进行过多重定向

    在我的 Node js 应用程序 我使用的是express 4 x 中 我想检查用户是否已登录 如果用户未登录 我想重定向到我的登录页面 然后我在中间件中这样做 服务器 js app use function req res next if
  • 消息“在 jest.setTimeout 指定的 5000 毫秒超时内未调用异步回调”

    我正在使用 Puppeteer 和 Jest 来运行一些前端测试 我的测试如下 describe Profile Tab Exists and Clickable settings user gt test Assert that you
  • jquery 验证错误位置

    这看起来很简单 但我无法弄清楚 我正在使用 jquery 验证插件 我验证所有文件 但我想要的是在输入文本行中显示验证消息警报 例如在电子邮件输入中 请填写电子邮件地址 但现在它出现在所有字段下 在我的html中
  • 如何仅在 NextJS 站点构建期间使用 getInitialProps?

    当使用 NextJS 构建静态站点时 我想要getInitialProps方法仅在构建步骤期间触发 而不是在客户端上触发 在构建步骤中 NextJS 运行getInitialProps 方法 https nextjs org docs fe
  • 检查 touchend 是否在拖动后出现

    我有一些代码可以更改表的类 在手机上 有时表格对于屏幕来说太宽 用户将拖动 滚动来查看内容 但是 当他们触摸并拖动表格时 每次拖动都会触发 touchend 如何测试触摸端是否是触摸拖动的结果 我尝试跟踪dragstart和dragend
  • 是否可以使用 javascript 测试用户的浏览器/操作系统是否支持给定类型的链接?

    是否可以使用 javascript 或其他任何东西 测试用户的操作系统 浏览器是否支持给定的 url 方案 例如 大多数仅使用网络邮件的用户计算机上未设置 mailto 是否有可能以某种方式捕获单击 mailto 链接的尝试并弹出比浏览器错
  • javascript中按tab键时如何调用函数?

    我有一个这样的功能 function whenEmpty field if field value field style backgroundColor ffcccc alert Please fill the field field f
  • 使用鼻子获取设置中当前测试的名称

    我目前正在使用鼻子编写一些功能测试 我正在测试的库操作目录结构 为了获得可重现的结果 我存储了一个测试目录结构的模板 并在执行测试之前创建该模板的副本 我在测试中执行此操作 setup功能 这确保了我在测试开始时始终具有明确定义的状态 现在
  • JavaScript 中数组的 HTML 数据列表值

    我有一个简单的程序 它必须从服务器上的文本文件中获取值 然后将数据列表填充为输入文本字段中的选择 为此 我想要采取的第一步是我想知道如何动态地将 JavaScript 数组用作数据列表选项 我的代码是
  • 如何流式传输 OpenAI 的完成 API?

    我想流式传输结果通过 OpenAI 的 API 完成 https beta openai com docs api reference completions 该文档提到使用服务器发送的事件 https developer mozilla
  • Typeahead.js substringMatcher 函数说明

    我只是在做一些研究Typeahead js这是一个非常酷的图书馆 感谢文档 我已经成功地获得了一个基本的示例 该文档也非常好 但是我试图弄清楚以下代码块实际上在做什么 var substringMatcher function strs r
  • 如何在 javascript 正则表达式中匹配平衡分隔符?

    我原以为这个问题是不可能的 据我所知 Javascript 的正则表达式既没有递归插值 也没有漂亮的 NET 平衡组功能 但问题就在那里 如问题 12 所示正则表达式 alf nu http regex alf nu 匹配平衡对 lt an
  • Jquery - 通过在字符串中构建 id 的 id 获取元素

    我在使用 jquery 元素时遇到问题 我正在 var 中构造名称 例如 var myId myGotId myId attr title changed myId 返回空 我想通过 id 获取我的元素 但动态构建我的 Id 连接字符串 编
  • 打字稿 - 字符串'不可分配给类型'FC

    我收到以下错误 Type props PropsWithChildren lt amount number gt gt string is not assignable to type FC lt amount number gt Type
  • 单击引导分页链接时调用 jquery 函数

    我想在单击引导分页链接时调用 jquery 函数 假设我想从第1页遍历到第2页 应该调用一个jquery函数 我正在使用以下代码 但它不起作用 ul pagination on click li function alert page ch
  • KeyboardAvoidingView - 隐藏键盘时重置高度

    我正在使用 React NativeKeyboardAvoidingView设置我的高度View当显示键盘时 但是当我关闭应用程序中的键盘时 视图的高度不会变回原来的值

随机推荐

  • 如何自定义SpringWebFlux WebClient JSON反序列化?

    我正在使用一个spring webflux WebClient https docs spring io spring docs 5 0 0 BUILD SNAPSHOT javadoc api org springframework we
  • 将儒略日期转换为公历日期

    我正在用 Lua 编写一个计算日落 日出的应用程序 为此 我必须首先将公历日期转换为儒略日 并从那里进行所有复杂的数学运算等 我已经完成了困难的数学计算 但现在我需要将儒略日期 例如 2456495 6833865 转换回公历日期 并附上时
  • 检索用户级别每个标签对应的答案总数

    我正在尝试创建一个查询 以查找与每个标签对应的答案总数 我在 stackoverflow 中给出 Through this https data stackexchange com stackoverflow query 7521 how
  • Scala:扩展内部类,不引用外部类

    我可以在外部类内部或从外部类派生的类内部扩展内部类 特征 我可以扩展外部类的特定实例的内部类 如下所示 class Outer class Inner class OtherCl val outer1 Outer class InnA ex
  • 绘制嵌套维恩图

    我的数据包含两个组的二进制指标 以及嵌套在前两组之一中的更多组的数据 例如 set seed 1 df lt data frame a rep 0 10 b rep 0 10 b 1 rep 0 10 b 2 rep 0 10 df a s
  • 如果参数改变,“arguments”对象也会改变

    我刚刚发现arguments如果参数之一发生变化 则对象实际上会发生变化 例如 function some a b c console log arguments args a b c a new Date console log argu
  • 使用Onload 还是准备好?

    在我的应用程序中我正在使用 document ready 这和有什么区别 document onload The ready http api jquery com ready 仅当DOM http en wikipedia org wik
  • 将路由从状态提供者转换为路由提供者

    我的 config JS 上有以下代码 它运行得很好 function config stateProvider urlRouterProvider ocLazyLoadProvider IdleProvider KeepaliveProv
  • 如何使用 ng-click 动态重新加载 ng-repeat 数据?

    我有一个页面包含ng repeat指示 这ng repeat页面首次加载时有效 但我希望能够使用ng click刷新内容ng repeat 我已经尝试过以下代码 但它不起作用 有什么建议么 div Load 1st set of items
  • SQL查询输出的逆序

    我有一个无法解决的问题 我使用 PHP 通过我的数据库运行以下命令 strQuery select from LastResult ORDER BY Date DESC LIMIT 10 结果一切正常 符合预期 但是 然后我必须将它们输入折
  • 清除 sqlalchemy 反射缓存

    我正在使用 sqlalchemy 的反射工具来获取 Table 对象 我这样做是因为这些表是动态的并且表 列可以更改 这是我正在使用的代码 def getTableByReflection self tableName metadata e
  • ipython 和 python 的输出差异

    据我了解 python 会打印repr的输出 但显然情况并非总是如此 例如 在 ipython 中 In 1 type Out 1 list In 2 set 3 1 2 Out 2 1 2 3 在Python中 gt gt gt type
  • 角度自定义下拉菜单

    How to create a custom dropdown in angular and load data
  • Java:使用 lambda 将行号添加到文件的优雅方法

    我习惯使用 lambda 逐行解析文件 比bufferedReader readLine 许久 但今天我遇到了一个问题 为每一行添加一个行号 它需要一个计数器 但 lambda 中的变量实际上应该是最终的 最后 我用 int 数组破解了它
  • 无法从客户端会话 ID 读取附加数据

    我们有hadoop集群3 kafka机器和3 动物园管理员 servers hadoop 版本 2 6 4 HORTONWORKS 在zookeeper日志下 var log zookeeper 我们看到了一百万条警告消息 例如 2019
  • Spring JPA 存储库转换器未找到

    我有一个实体类UserModel java Entity Table Data EqualsAndHashCode of id ToString of id public class UserModel Id GeneratedValue
  • nginx/gunicorn Django Rest Framework 应用程序的端口代理

    我正在使用 Gunicorn 和 nginx 将传入请求路由到我的 Django Rest Framework API Gunicorn 运行在端口 8001 上 nginx 运行在端口 8000 上 nginx 配置为将请求转发到 Gun
  • JavaScript - 使用 new 关键字的标准

    这是一个与内存使用和 new 关键字有关的问题 我需要您对在本地方法中使用 新 的建议和偏好 get function var get new Ajax Updater resourceList url method POST onComp
  • Instagram 用户/self/feed 404 错误代码

    我正在尝试使用以下 API 使用 JInstagram 库 获取自己的媒体源信息 https api instagram com v1 users self feed access token valid access token 响应代码
  • 如何忽略TestCafe中的“超出ResizeObserver循环限制”

    我目前正在使用 TestCafe 进行一些 e2e 测试 我遇到了以下错误 1 Error in Role initializer A JavaScript error occurred on http localhost 3000 Rep