Cypress 中是否有相当于“containsExact”函数的函数?

问题描述 投票:0回答:1

我有一个 Cypress E2E 测试套件,我想在其中通过表格单元格中显示的文本搜索表格中的行。

我在以下方面取得了一些成功:

cy.get('.p-datatable-tbody').should('be.visible')
    .contains('tr', 'The Exact Row I Want To Click')
    .then($row => {
    $row.click();
            
});

但是当不止一行包含该文本时,我遇到了问题。

例如,如果前两行表格的单元格包含以下文本:

“不是我想要单击的确切行”

“我想要单击的确切行”

返回第一行而不是第二行 - 因为它确实包含我正在搜索的文本,但不是我正在搜索的确切文本。

是否有任何类型的 .containsExact 函数可以用于此类事情?

非常感谢

cypress angular-e2e e2e
1个回答
0
投票

这里有一个很好的精确匹配示例如何使用 contains 来匹配精确字符串

根据您的情况,运行此代码

const reExactMatch = new RegExp('^The Exact Row I Want To Click$')

const match = reExactMatch.test('The Exact Row I Want To Click')
const noMatch = reExactMatch.test('Not The Exact Row I Want To Click')

console.log(match, noMatch)  // true, false

在 Cypress

.contains()
命令中,您可以使用带有反斜杠分隔符的缩写形式,这会动态创建 rexeg。

cy.contains('td', /^The Exact Row I Want To Click$/)   // look for cell with text
  .parent('tr')                                        // find it's row element
© www.soinside.com 2019 - 2024. All rights reserved.