赛普拉斯:如何测试Loadmore按钮

时间:2020-03-19 15:31:24

标签: cypress

我有一个更多的按钮加载位,并且有一个赛普拉斯测试涵盖了加载操作。我如何告诉赛普拉斯重复该步骤,直到按钮消失(例如,不再加载任何东西?)。如果我不知道我需要单击多少次?

一次迭代,我检查以下方式:

cy.get('#loadmore').click();
cy.get('#loadmore').contains(text.loading);

cy.wait('@loadPosts')

cy.get('.blog').find('.article').should('have.length', n+5)
cy.get('#loadmore').contains(text.loadmore)

1 个答案:

答案 0 :(得分:1)

仅供参考,这不是e2e测试的正确行为,因为您应该始终知道必须单击一次按钮的次数。 但是,作为一种解决方法,我想您可以使用类似以下的方法:

// your cypress test code
it('does something different based on the class of the button', function () {
  // RERUN THIS TEST OVER AND OVER AGAIN
  // AND IT WILL SOMETIMES BE TRUE, AND
  // SOMETIMES BE FALSE.

  cy.get('button').then(($btn) => {
    if ($btn.hasClass('active')) {
      // do something if it's active
    } else {
      // do something else
    }
  })
})

参考链接https://docs.cypress.io/guides/core-concepts/conditional-testing.html#The-DOM-is-unstable