gpt4 book ai didi

javascript - 引用别名文本值时,Cypress 看到未定义

转载 作者:行者123 更新时间:2023-12-03 08:10:16 25 4
gpt4 key购买 nike

我的测试结果是向表中添加一行。在 afterEach 钩子(Hook)中,我想添加一个方法来在测试运行后删除最新行,所以我编写了这段代码:

deleteTheNewestRequest() {
cy.get('table#return-request-list').find('tr').eq(1).then( firstRow => {
cy.wrap(firstRow).find('td').eq(0).invoke('text').as('rowId')
cy.wrap(firstRow).find('a[title="Delete"]').click()
cy.get('button.btn-delete-return-request').click()
cy.wrap(firstRow).find('td').first().should('not.have.text', this.rowId)
})
}

使用“then”,我将保存一个表元素,以便稍后用于查找和操作其中的元素。我想首先保存测试成功运行后添加的表中最新行的值,然后删除,最后一步确保具有已删除 ID 的行实际上已从表中消失。问题是 cypress 测试运行程序断言将其标记为绿色,因为它发现 的值不等于“未定义”,而不等于 3794。

最佳答案

这看起来像是罪魁祸首cy.get('table#return-request-list').find('tr').eq(1)。您获得要删除的行,删除它,然后包装删除行元素,即使它不存在。所以它会返回未定义。您应该首先获取所有行。

function deleteTheNewestRequest(){
// get all rows in table
cy.get('table#return-request-list').find('tr').then( rows => {
// get last row and store rowId
cy.wrap(rows).last().find('td').first().invoke('text').as('deletedRowId')
cy.wrap(rows).last().find('a[title="Delete"]').click()
cy.get('button.btn-delete-return-request').click()
// check new last row does not have same rowId
cy.wrap(rows).last().find('td').first().should('not.have.text', this.rowId)
})
}

关于javascript - 引用别名文本值时,Cypress 看到未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71064790/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com