Dans un test Cypress.io, tout en vérifiant les "données" affichées dans un tableau après avoir appliqué le filtre, il renvoie "CypressError: délai expiré, nouvelle tentative: impossible de lire la propriété" eq "de non défini". Quelqu'un peut-il s'il vous plaît indiquer comment résoudre le problème dans le test ci-dessous? Image HTML du tableau ajoutée ci-dessous.
describe('Filter Test', function() {
it.only('Check if the records are filtered successfully', function() {
cy.visit('http://www.seleniumeasy.com/test/table-search-filter-demo.html')
cy.get('button').contains('Filter').click()
cy.get('input[placeholder="Username"]').type('jacobs')
cy.get('table').should(($tr) => {
const $tds = $tr.find('td') // find all the tds
expect($tds.cells.eq(0)).to.contain('jacobs')
})
})
})
Il existe plusieurs façons de le faire, mais la fonction contains()
est de loin la plus simple dans ce cas:
cy.get('table').contains('td', 'jacobs');
Cela obtiendra l'élément table
et affirmera qu'il contient une balise td
avec le texte jacobs
.
Il convient de noter que contains()
agit également comme un sélecteur, et à la manière typique de Cypress, vous pouvez continuer à l'enchaîner, comme ceci:
cy.get('table').contains('td', 'jacobs').should('be.visible');
cy.get('table').contains('td', 'jacobs').then(elem => {
// Do something with this specific element...
});
// etc...