Uploaded August 2025 | Updated September 2026, 1 week ago
We can use the cy.filter command to filter DOM elements by the presence of some child elements. For example, to find all LI elements that have an element inside with class "new", we can do the following (this example also verifies the element's own text)
// confirm 2 new elements
cy.get('li').filter(':has(.new)').should('have.length', 2)
// confirm the elements without "new" label
// have specific tet
cy.get('li')
.filter(':not(:has(.new))')
.map('childNodes.0.nodeValue')
.mapInvoke('trim')
.should('deep.equal', ['Grapes', 'Pears'])
Note: "map" and "mapInvoke" commands come from the plugin github.com/bahmutov/cypress-map
Find this recipe at glebbahmutov.com/cypress-examples
We can use the cy.filter command to filter DOM elements by the presence of some child elements. For example, to find all LI elements that have an element inside with class "new", we can do the following (this example also verifies the element's own text)
// confirm 2 new elements
cy.get('li').filter(':has(.new)').should('have.length', 2)
// confirm the elements without "new" label
// have specific tet
cy.get('li')
.filter(':not(:has(.new))')
.map('childNodes.0.nodeValue')
.mapInvoke('trim')
.should('deep.equal', ['Grapes', 'Pears'])
Note: "map" and "mapInvoke" commands come from the plugin github.com/bahmutov/cypress-map
Find this recipe at glebbahmutov.com/cypress-examples










