

Quiero hacer clic en el botón Siguiente para probar la paginación, hasta que su clase esté "deshabilitada". Usé el código de abajo. Pero continúa haciendo clic incluso en el botón "Siguiente" que tiene la clase "deshabilitada". Y Cypress arroja el error en el archivo adjunto.
static pagination(){ var index = 0 cy.get('li [data-test="page-link"]:not(.active):not([aria-label="Next"]) :not([aria-label="Previous"]').as("pages") cy.get('@pages').its('length').then( len =>{ if(index <= len){ cy.get('[data-test="page-link"][aria-label="Next"]').then( next=>{ cy.wrap(next).invoke('hasClass', 'disabled').then( classDisable =>{ if(classDisable==false){ cy.wait(500) cy.wrap(next).should('not.have.class', 'disabled') cy.wrap(next).click() } this.pagination() index++ }) }) } }) }Puede ser posible evitar la verificación condicional por completo.
Si puede obtener el número en el cuadro a la izquierda de "Siguiente", supongo que .prev() lo obtendrá, pero es posible que deba ajustar ese paso.
Luego puede hacer clic en() pageCount-1 veces.
cy.get('[data-test="page-link"][aria-label="Next"]') .prev() // last page box .invoke('text') .then(lastPageText => { const pageCount = +lastPageText; Cypress._.times(pageCount -1, () => { cy.get('[data-test="page-link"][aria-label="Next"]').click() }) })Intente establecer la opción de fuerza en verdadero en el siguiente clic.
cy.wrap(next).click({ force: true} )Si desea hacer clic en el botón deshabilitado, debe usar {force: true}
cy.wrap(next).click({force: true})Y, si desea verificar primero si el botón está habilitado o no y luego hacer clic, puede hacer algo como:
cy.get('[data-test="page-link"][aria-label="Next"]').then(($next) => { if ($next.is(':enabled')) { //next button is enabled cy.wrap(next).click() } else { // Do something when next button is disabled } })