ali*_*and 1 javascript uncaught-exception reactjs cypress
这个错误已经让我几个月无法使用 cypress
/// <reference types="cypress" />
describe('User login', () => {
beforeEach(() => {
cy.visit('http://localhost:8080')
})
// ...
})
Run Code Online (Sandbox Code Playgroud)
我收到一条错误消息:
(uncaught exception)TypeError: Failed to set an indexed property on 'DOMStringList': Indexed property setter is not supported.
Run Code Online (Sandbox Code Playgroud)
更多细节:
应用程序规格:
看来错误是由于某些加载造成的(假设是 webpack)
GET 200 /sockjs-node/info?t=1672024046431
我注意到如果我注释掉应用程序的其余部分似乎加载的特定组件(标题栏)
小智 5
当您看到时,(uncaught exception)通常是您的应用程序造成了这种情况。
您无法更改测试代码中的任何内容来实际修复它,这是非常明显的,因为您的测试除了访问页面之外不执行任何操作。
fail您可以通过捕获事件并从处理程序内部返回来让 Cypress 对这个特定错误视而不见false- 这告诉 Cypress 继续执行,就好像错误没有发生一样。
但现在这可能会在以后带来麻烦,因为看起来该步骤是在授权中,如果没有授权,您将无法走得太远。
事件捕获器应该位于规范的顶部,代码如下:
Cypress.once('uncaught:exception', () => false)
Run Code Online (Sandbox Code Playgroud)
如果您发现这就是所需要的,并且之后可以正确测试授权,则永久保留代码,但添加对特定错误消息的检查
Cypress.once('uncaught:exception', (err) => {
if (err.message.contains('Failed to set an indexed property')) {
return false
}
})
Run Code Online (Sandbox Code Playgroud)
但如果在此之后您继续收到错误,恐怕您将不得不发布 React 代码才能获得更好的答案。