赛普拉斯-测试表单中的错误消息会触发页面加载

时间:2018-09-10 13:52:59

标签: javascript forms cypress

我正在尝试测试表单的必填字段以及在没有(有效)输入的情况下提交表单时显示的错误消息。这是我正在使用的赛普拉斯代码。首先,我断言表单在那里,输入字段的边框为灰色,并且未显示错误消息。然后,我单击“提交”按钮,并期望输入框边框变为红色,错误消息将显示为红色,并且也变为红色。

cy.get('[data-module="questionnaire"] form').should('be.visible')
cy.get('[data-module="questionnaire"] form label').should('contain', 'Question 1')
cy.get('[data-module="questionnaire"] form input')
    .should('contain', '')
    .should('have.css', 'border', '1px solid rgb(204, 204, 204)')
cy.get('[data-module="questionnaire"] form .a-error-block').should('not.exist')
cy.get('[data-module="questionnaire"] form button').invoke('text').should('equal', 'Next question')
cy.get('[data-module="questionnaire"] form button').click()
cy.get('[data-module="questionnaire"] form input')
    .should('contain', '')
    .should('have.css', 'border', '1px solid rgb(234, 40, 40)')
cy.get('[data-module="questionnaire"] form .a-error-block')
    .should('be.visible')
    .should('have.css', 'color', 'rgb(234, 40, 40)')
    .invoke('text').should('equal', 'This field is required')

单击后在第一个断言上失败,原因似乎是由赛普拉斯触发的表单提交后加载了页面。这会将调查表重置为没有表单的状态,并且断言步骤正在寻找表单。我认为它应该不会刷新。如果我“冻结”点击的播放,我的确会看到输入字段的颜色发生变化,并出现错误消息。

点击后,我在播放列表中看到了这个

(FORM SUB)--submitting form--
(PAGE LOAD)--page loaded--

0 个答案:

没有答案