【发布时间】:2018-12-27 05:18:47
【问题描述】:
将显示一条消息“Ajax 请求正在处理中!”在单击一个 ajax 表单提交时,该过程正在进行中。 一旦该过程完成,我们将收到另一条消息“表单提交成功!” 我正在尝试使用 Cypress.io 检查进度消息,但断言始终只能获得最终文本。
describe('Verify that Fe male is selected', function () {
it('clicks the link "type"', function () {
cy.visit('https://www.seleniumeasy.com/test/ajax-form-submit-demo.html')
cy.get('#title').type("MyTest Name").should('have.value', 'MyTest Name')
cy.get('#description').type("MyTest Description")
cy.get('#btn-submit').click().should('not.exist')
cy.get('#submit-control').should('have.text',"Ajax Request is Processing!")
cy.get('#submit-control').should('have.text',"Form submited Successfully!")
})
})
但这总是失败,显示断言错误 CypressError: Timed out retrying: expected '' to have text 'Ajax Request is Processing!',但文本是'Form submit successfully!'
我们如何检查在提交操作进行时显示的临时消息。
附上图片
【问题讨论】:
-
这可能是由于提交请求太快造成的,其中 cypress 可能会在
Ajax Request is Processing已经被Form submited Successfully替换后立即对其进行 DOM 检查。我没有对此进行测试,但可能唯一的解决方案是为此类测试引入人工延迟。这就是我们所做的。