赛普拉斯交互命令竞争条件

Cypress interactions commands race condition

例如,当我尝试使用 Cypress 单击按钮时,get 命令将在按钮可操作之前获取按钮(例如仍然不可见)。稍后 click 命令将失败,因为传递给它的主题不可操作。如何避免这种行为?

尝试添加可见性断言

cy.get('#button')
  .should('be.visible')
  .click(); 

您可以添加 visibility 检查并确保按钮是 enabled,然后执行 click()

cy.get('selector').should('be.visible').and('be.enabled').click()

我不建议您覆盖现有的 cypress 命令,而是在 cypress/support/commands.js 下创建一个自定义命令,如下所示:

Cypress.Commands.add('waitAndClick', (selector) => {
  cy.get(selector).should('be.visible').and('be.enabled').click()
})

并且在你的测试中你可以添加:

cy.waitAndClick('button')