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

lee*_*n M 2 javascript testing ui-testing typescript 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();

        })
Run Code Online (Sandbox Code Playgroud)

然后我遇到了这个错误

在此处输入图片说明

我该如何解决

lee*_*n M 9

通过将其添加到 support/index.js 解决的问题

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

这是为了避免未捕获的:异常

点击()


jes*_*sse 8

接受的答案将导致赛普拉斯忽略应用程序中所有未捕获的异常。一般来说,当出现这些问题时,意味着您在应用程序中发现了错误,应该修复它。

绑定到全局Cypress对象会导致事件在整个测试运行期间保持绑定状态。通常,这不是您想要的。

如果您实际上需要忽略异常,则应该将事件绑定到对象上cy以便仅在使用它的单个测试中保留该事件。

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