如何在cypress中单击表单按钮而不触发页面加载

在赛普拉斯测试中单击表单按钮时,在页面响应完成之前,我无法在页面上进行任何其他测试。这是一个问题,因为在单击“表单”按钮后,我正在尝试测试加载微调器的可见性。

无效的测试示例:

 cy.get('#username').type('testusername')
    .get('#password').type('password')
    .get('#login-button').click().then(() => {
       cy.get('#login-spinner').should('be.visible');
    });

问题在于,直到页面加载完成后,cy.get('#login-spinner').should('be.visible');的最后一部分才执行。我也尝试将其移到.then()子句之外,但是结果是相同的-赛普拉斯似乎非常坚持必须等待表单响应加载:

如何在cypress中单击表单按钮而不触发页面加载

cy.get('#login-spinner').should('be.visible');然后在单击表单后加载的页面上执行,这时微调器再次隐藏,导致测试失败。

qq4714167 回答:如何在cypress中单击表单按钮而不触发页面加载

您可以将事件侦听器附加到表单并停止事件,如下所示:

cy.get('#username').type('testusername')
cy.get('#password').type('password')
cy.get('<add-form-selector-here>').then(form$ => {
   form$.on('submit',e => {
     e.preventDefault();
   });
})
本文链接:https://www.f2er.com/3145484.html

大家都在问