如何确定canvas内上传图片数量,调用对应次数Remove_image()清理画布
解决方案
核心逻辑是动态获取当前已上传图片的数量,再对应调用删除方法,无需硬编码固定调用次数:
- 你原本的条件判断逻辑写反了:你要求的是画布为空直接上传,否则先删再传,原有代码中
length>0时直接上传的逻辑和需求相反,已在优化代码中修正 - 使用Cypress内置的
Cypress._.times方法做异步循环,完美适配Cypress的执行规则,不会出现循环次数错位问题
优化后完整代码
cy.get('body').each((body) => { // 获取当前已上传图片对应的元素数量 const uploadedImageCount = body.find(':nth-child(2) > .front-upload > :nth-child(2) > .table > .table-cell').length if (uploadedImageCount === 0) { // 画布为空,直接执行上传逻辑 const filepath = "Front.jpg" imageupload.fileuploadInput().attachFile(filepath, { subjectType: 'drag-n-drop' }) cy.wait(60000) cy.Flip_image() } else { // 存在已上传图片,按实际数量动态调用删除方法 cy.log(`检测到${uploadedImageCount}张已上传图片,开始删除`) Cypress._.times(uploadedImageCount, () => { cy.Remove_image() // 每次删除后增加短等待,避免操作冲突,可根据实际执行速度调整时长 cy.wait(500) }) // 删除完成后执行上传 cy.wait(1000) const filepath = "Front.jpg" imageupload.fileuploadInput().attachFile(filepath, { subjectType: 'drag-n-drop' }) cy.wait(60000) cy.Flip_image() } })
内容的提问来源于stack exchange,提问作者Krina Modi
相关产品推荐
相关产品推荐

