赛普拉斯交互命令竞争条件
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')
例如,当我尝试使用 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')