赛普拉斯类别名称查询返回错误的类别名称?

时间:2020-05-19 17:33:58

标签: ui-automation cypress

我现在正在进行一项测试,该测试检查单击某个dom元素后dom元素(前面板)的类名是否更改。我获取“前面板”的初始类名称,然后单击必要的dom元素,然后再次查询“前面板”类名称。尽管我可以在浏览器中清楚地看到一个不同的类名,但是赛普拉斯再次返回了Front Panel的初始类名。我在这里想念什么?

  it('Changes Panel Background Color', () => {
    cy.get('#Front_panel')
      .invoke('attr', 'class')
      .then(prevClassName => {
        cy.get('#color_picker')
          .children()
          .first()
          .children()
          .first()
          .children()
          .first()
          .children()
          .first()
          .children()
          .first()
          .click()

        cy.get('#Front_panel')
          .invoke('attr', 'class')
          .then(newClassName => {
            assert(prevClassName !== newClassName)
          })
      })
  })

顺便说一句,我知道这可能不是赛普拉斯的最佳做法;)

1 个答案:

答案 0 :(得分:0)

在我的案例中,我有一个对这种行为运行良好的测试,用于检查模态显示是否正常。试试这个:

  cy.log('has a info button');
  cy.get('.home-header-info-button').click();
  cy.get('.modal-header').should('contain', 'Health Details');
  cy.get('.modal-body-health-info-name').should('contain', 'Tony');
  cy.get('.modal-body-health-info-operator').should('contain', 'Doctor');
  cy.get('.modal-body-info').should('be.visible');
  cy.get('.modal-body-image').should('be.visible');
  cy.get('.modal-footer').should('be.visible');
  cy.get('.modal-header-close').click();
  cy.get('.modal-header').should('not.exist');

一种更好的做法是导航到您的班级名称,因为对于下次阅读此测试的人来说,它更具描述性和可读性。