我有一个 API 可以返回一天中的时间,如果这些时间都被占用了,那么它不会返回任何时间。我想搬到第二天并尝试检查那里的时间,但我的测试卡住了并且会崩溃。
因此,如果没有时间,请转到第二天并等待响应并再次检查时间。如果有时间返回,我们可以退出循环。任何人都看到这是哪里出了问题?
谢谢
cy.get('body').then(($body) => {
while (true) {
if ($body.find('.time').length) {
break
} else {
cy.get('.day').eq(4).click()
cy.wait('@apiCheck2')
cy.wait(500)
}
}
})
Run Code Online (Sandbox Code Playgroud)
您有一个想要有条件地测试的选择器,以及一组在未找到时要执行的操作。
通用的自定义命令应该能够做到这一点。使用 jQuery 根据选择器和在尝试之间调用的函数来测试元素。
就像是:
Cypress.Command.add('findWithRetry', (selector, retryAction) {
const $el = Cypress.$(selector)
if ($el.length) {
return cy.wrap($el)
}
retryAction()
return cy.findWithRetry(selector, action)
})
cy.intercept(url).as('@apiCheck')
const retryAction = () => {
cy.get('.day').eq(4).click()
cy.wait('@apiCheck')
}
cy.findWithRetry('.time', retryAction)
.then($timeslots => {
// use your timeslots
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
938 次 |
| 最近记录: |