赛普拉斯通过包含的文本过滤选定的元素

Cypress filter selected ellements by severar included text

我有一个 select 多行查询,如下所示:

cy.get('#test-container').find('.row')

我想找到一个,在不同的子元素中包含一些文本(例如 'test title' 和 'test value')。或者至少测试此行是否存在。 像这样:

cy.get('#test-container').find('.row').filter('include.text', 'test title').filter('include.text', 'test value')

Cypress filter 将选择器作为其参数,它似乎与 DOM 元素的文本内容不匹配。

相反,您可以将 cy.contains 与正则表达式一起使用。

cy.get('#test-container').find('.row').contains(/(?:test title|test value)/)

括号和问号表示非捕获组,它匹配管道两侧的任何项目。 MDN RegEx 文档提供了更多信息。

使用正确的选择器。

例如:

cy
  .get('#test-container')
  .find('.row')
  .filter(':contains("test title")')

试试这个!