Cypress如何在before钩子中实现HTML表格所有数据行批量删除
function deleteAllFoundProducts() { cy.get('tbody tr').then(rows => { // 判断是否为空状态提示行 const isEmptyState = rows.text().includes('No matching records found') // 行数为空 或 为空状态时直接终止递归 if (rows.length < 1 || isEmptyState) return // 限定删除按钮的查询范围仅在当前表格行内,避免命中页面其他同名元素 cy.wrap(rows).first().find('span[title="Delete"]', {timeout: 10000}).click() cy.get('.tBtn[title="Yes"]').click().then(() => { cy.get('.loader', {timeout: 10000}).should('not.exist') deleteAllFoundProducts() }) }) }
修改说明
- 新增空状态判断逻辑:空表格渲染的提示行文本固定为
No matching records found,检测到该文本存在时直接终止递归,不会进入后续删除流程,从根源避免找不到删除元素的报错 - 优化删除按钮查询范围:将删除按钮的查询限定在已获取的表格行内部,避免页面其他区域的同属性删除按钮干扰测试,提升用例稳定性
内容的提问来源于stack exchange,提问作者Xerces
相关产品推荐
相关产品推荐

