我有一个包含卡片元素的页面,当用户向下滚动时会加载更多卡片。我正在尝试编写一个测试来向下滚动,直到加载所有卡片元素。
我正在尝试什么:
let stopScroll
let currentCard
let lastCard
let scrollArray = Array.from({length:100},(v,k)=>k+1)
cy.wrap(scrollArray).each((index) => {
if (stopScroll != true) {
cy.get('[data-testid="card"]').last().then(($element) => {
lastCard = $element.text();
})
cy.get('[data-testid="footer"]').scrollIntoView().should('be.visible')
cy.wait(1000)
cy.get('[data-testid="card"]').last().then(($element) => {
currentCard = $element.text();
if (lastCard == currentCard){
stopScroll = true
cy.log(stopScroll)
}
})
.then(() => {
if (stopScroll == true){
return false
}
})
}
})
Run Code Online (Sandbox Code Playgroud)
即使 stopScroll 设置为 true,循环也会继续进行。一切似乎都达到了“.then(()”的程度。我不确定这是否是正确的方法。