0

我正在用 cypress 编写 e2e 测试:我想测试 IHM 中 2 个模态弹出窗口的显示:A 和 B。但是由于网络或服务器延迟,A可能会在B之前显示,或者B可能会在A之前显示。如何用cypress编写这种测试?

实际上我被困住了,因为如果我写

cy.get("[data-cy='dialog-confirm-content']").contains(data.notifA, {timeout: 20000});
cy.get("[data-cy='dialog-confirm-content']").contains(data.notifB, {timeout: 20000});

如果 B 出现在 A 之前,它不起作用...

谢谢,奥利维尔

4

1 回答 1

0

假设这是流量。显示第一个弹出窗口然后消失,然后再次弹出第二个弹出窗口,您可以执行以下操作:

cy.get("[data-cy='dialog-confirm-content']").then((text) => {
  expect($ele.text().trim()).to.be.oneOf([data.notifA, data.notifB])
}) //Checks Notification 1 Msg either A or B

cy.get("[data-cy='dialog-confirm-content']").should('not.exist') //Notification goes away

cy.get("[data-cy='dialog-confirm-content']")
  .should('be.visible')
  .then((text) => {
    expect($ele.text().trim()).to.be.oneOf([data.notifA, data.notifB])
  }) //Checks Notification 2 Msg either A or B
于 2021-11-22T11:42:17.963 回答