Cypress 柏树—;更新DOM类会产生竞争条件

Cypress 柏树—;更新DOM类会产生竞争条件,cypress,e2e-testing,race-condition,Cypress,E2e Testing,Race Condition,在Cypress中,我需要切换dark类,以测试黑暗模式下的可访问性 然而,这似乎造成了一种竞赛条件。辅助功能检查在浏览器完全更新颜色之前完成。我正在使用扩展来检查可访问性错误。具体来说,扩展不断抛出“颜色对比度”错误 目标 在Cypress中切换DOM类 不产生竞争条件 不用等待任意的时间 代码 下面是我添加的用于切换dark类的cypress命令 Cypress.Commands.add('toggleDarkMode', () => { cy.window().then(

在Cypress中,我需要切换
dark
,以测试黑暗模式下的可访问性

然而,这似乎造成了一种竞赛条件。辅助功能检查在浏览器完全更新颜色之前完成。我正在使用扩展来检查可访问性错误。具体来说,扩展不断抛出“颜色对比度”错误

目标
  • 在Cypress中切换DOM类
  • 不产生竞争条件
  • 不用等待任意的时间
代码 下面是我添加的用于切换
dark
类的cypress命令

Cypress.Commands.add('toggleDarkMode', () => {
    cy.window().then((window) => {
        return window.document.querySelector('body')?.classList.toggle('dark')
    })
})
然后,使用暗模式检查可访问性。这通常会产生“颜色对比度”错误

然而,我相当肯定这是一种竞争条件,因为只要我等待任意时间,错误就会消失

cy.checkA11y()
cy.toggleDarkMode()
cy.wait(100)
cy.checkA11y()
cy.checkA11y()
cy.toggleDarkMode()
cy.wait(100)
cy.checkA11y()