web-dev-qa-db-fra.com

Comment afficher les données dans une table <td> dans le test Cypress.io?

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')   
        })

    })      

})

enter image description here

enter image description here

5
soccerway

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...
8
Joshua Wade