以下错误源自您的应用程序代码,而不是赛普拉斯

The following error originated from your application code, not from Cypress

我试着测试这个简单的代码

       type Url = string
       it('loads examples', () => {
      const url: Url = 'https://www.ebay.com/'
       cy.visit(url)
       cy.get('input[type="text"]').type('book')
        cy.get('#gh-btn').click();

        })

然后我遇到了这个错误

我该如何解决

尝试在 support/index.js 中添加:

import './commands'
Cypress.on('uncaught:exception', (err, runnable) => {
  // returning false here prevents Cypress from failing the test
  return false
})

这应该避免 click() 方法中的 uncaught:exception。

我遇到了同样的问题 Cypress Error

以下错误源自您的应用程序代码, 不是来自赛普拉斯。 > 无法读取 null 的属性(读取 'textContent')
当赛普拉斯检测到未捕获的错误源自 您的应用程序将自动通过当前测试。
此行为是可配置的,您可以选择通过以下方式关闭此行为 多听 uncaught:exception event.Learn

不用担心这个。

只需将此代码粘贴到您的 index.js 文件:)

import './commands'
   Cypress.on('uncaught:exception', (err, runnable) => {
   // returning false here prevents Cypress from
 // failing the test
   return false
   })

这个答案不会忽略应用程序抛出的所有错误吗?

接受的答案将导致赛普拉斯忽略应用程序中所有未捕获的异常。通常,当这些出现时,表示您在应用程序中发现了错误并应该修复它。

绑定到 global Cypress object 会导致事件在整个测试中保持绑定状态 运行。通常,这不是您想要的。

如果您确实需要忽略异常,您应该在 the cy object 上绑定事件,这样它只会在使用它的单个测试中保留。

it('my test', () => {
  cy.once('uncaught:exception', () => false);
  
  // action that causes exception
  cy.get('body').click();
});