Cypress如何使用.each()比较文本值并检测表格重复数据
Cypress 表格重复值校验问题及解决
场景说明
做Cypress测试时需要读取表格内容比对所有文本值,若同一个值出现两次则判定测试不通过。
最初实现及问题
最初尝试通过计数器实现该逻辑:计数器达到2时触发失败,但Cypress的文本值比对始终不生效,无法进入if语句块,示例代码如下:
let duplicateCounter = 0 cy.get('[data-cy="projectList"]') .find('[data-cy="project.name"]') // 给表格自定义的选择器标记 .each((MyElement, MyIndex, MyContentOfArray) => { cy.wrap(MyElement.text()) .then( (tmp) => { cy.log('tmp = ' + tmp) if(tmp == "001_AA_Testproject") // 文本比对不生效,始终无法进入该代码块 { cy.log('============================================ if Block ' ) duplicateCounter += 1 } cy.log('duplicateCounter = ' + duplicateCounter) }) cy.get(duplicateCounter ).should('eq',1)
核心疑问:如何在.each()循环中正确使用if语句完成值判断?
可行解决方案
该方案由Alapan Das提供:
var projectName = '00_AA_Testprojekt Duplikatscheck'; cy.get('[data-cy="projectList"]') .find('[data-cy="project.name"]') // .filter(':contains("00_AA_Testprojekt Duplikatscheck")') .filter(':contains("' + projectName + '")') .should('have.length', 1)
内容的提问来源于stack exchange,提问作者fasswas
相关产品推荐
相关产品推荐

