我有一个更多的按钮加载位,并且有一个赛普拉斯测试涵盖了加载操作。我如何告诉赛普拉斯重复该步骤,直到按钮消失(例如,不再加载任何东西?)。如果我不知道我需要单击多少次?
一次迭代,我检查以下方式:
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)
答案 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