Cypress filter selected ellements by severar included text

Viewed 7670

I have a select query of several lines something like this:

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

I want to find one, that contains some text (for example 'test title' and 'test value') in different subellements together. Or at least test that this row exist. Something like this:

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

Use correct selector.

Ex:

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

Try this!

Cypress filter takes a selector as its parameter, it does not appear to match on text content of the DOM element.

Instead, you could use cy.contains with a regular expression.

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

The parentheses and question mark is to indicate a non-capturing group, which matches on any of the items on either side of the pipe. MDN RegEx docs give more info.

Related