javascript Cypress无法cy.visit(),因为page抛出了未捕获的异常

o4tp2gmn  于 2022-12-25  发布在  Java
关注(0)|答案(1)|浏览(217)

这个错误已经让我几个月没有使用Cypress了😟

/// <reference types="cypress" />

describe('User login', () => {
  beforeEach(() => {
    cy.visit('http://localhost:8080')
  })
  // ...
})

我得到一个错误,说:

(uncaught exception)TypeError: Failed to set an indexed property on 'DOMStringList': Indexed property setter is not supported.

cbeh67ev

cbeh67ev1#

当您看到(uncaught exception)时,通常是您的应用导致的。
您不能更改测试代码中的任何内容来实际修复它,这是非常明显的,因为您的测试除了访问页面之外不做任何事情。
您可以通过捕获fail事件并从处理程序内部返回false来让Cypress对此特定错误视而不见-这会告诉Cypress继续执行,就像错误没有发生一样。
但现在这可能是以后的麻烦,因为它看起来像是授权的步骤,没有它你不会走得很远。
事件捕捉器应该位于规范的顶部,代码如下:

Cypress.once('uncaught:exception', () => false)

如果您发现这就是所需的全部内容,并且可以在此之后正确地测试authorize,那么请永久保留代码,但要为特定的错误消息添加一个检查项

Cypress.once('uncaught:exception', (err) => {
  if (err.message.contains('Failed to set an indexed property')) {
    return false
  }
})

但如果在此之后您继续收到错误,恐怕您将不得不发布React代码以获得更好的答案。

相关问题