Cypress中是否存在类似containsExact的精确文本匹配函数?
Cypress实现表格行精确文本匹配
Cypress没有内置的containsExact函数,但可以通过两种方式实现精确匹配:
方法1:使用正则表达式匹配整行文本
利用cy.contains支持正则表达式的特性,用^(匹配文本开头)和$(匹配文本结尾)限定匹配范围,确保只选中文本完全一致的行:
cy.get('.p-datatable-tbody').should('be.visible') .contains('tr', /^The Exact Row I Want To Click$/) .click();
方法2:用filter手动筛选精确匹配的行
通过filter遍历所有表格行,手动校验每行的文本是否与目标完全一致(注意用trim()去除可能的首尾空格):
cy.get('.p-datatable-tbody tr').should('be.visible') .filter((index, el) => Cypress.$(el).text().trim() === 'The Exact Row I Want To Click') .first() // 若存在多个完全匹配的行,取第一个 .click();
原代码问题原因
你之前的代码用cy.contains('tr', 'xxx')会触发部分匹配——只要行内文本包含目标字符串就会被选中,所以前一行因为包含The Exact Row I Want To Click这个子串,就被优先匹配到了。
内容的提问来源于stack exchange,提问作者Tim
相关产品推荐
相关产品推荐

