测试完泛型函数后从表中删除行



我对HTML表进行了一些添加、修改、删除的测试。我想要一个可以应用于清理以前数据的通用函数,以便每次都开始清理。

我目前重置了页面,但要开始测试还需要相当多的步骤,所以";撤消";功能将是非常有用的WRT更快的测试。

这是我目前为单行所做的(简化(

cy.get('tr').should('have.length', 3).eq(0).click()
cy.get('tr').should('have.length', 2)

现在我需要增强它来处理任意数量的行。我试着循环,但没有成功——测试似乎运行得太快,页面无法跟上,如果这有意义的话?

如果每次删除DOM时都会重写,那么从表中删除行是很棘手的。

至少在每次删除后对行数使用.should()断言,以确保每个步骤在下一步之前完成。

为了真正安全,请使用控制过程的递归函数,例如

const clearTable = (attempt = 0) => {
if (attempt === 100) throw 'Too many attempts'     // guards against too many steps
cy.get('tbody').then($tbody => {
if($tbody.find('tr').length === 0 ) return;      // exit condition tested here
cy.get('tr').then($rows => {
cy.wrap($rows).first().click()                 // action to delete
cy.then(() => {
clearTable(++attempt)                        // next step queued using then()
})
})
})
}
clearTable()

最新更新