El gatillo de Cypress no mantiene pulsado el clic dos veces en el mismo bucle cada vez.
Estoy tratando de eliminar un registro que está dentro de un bucle “each”. Se elimina la primera vez que se ejecuta cada bucle, pero la segunda vez, simplemente hace clic pero no lo mantiene.
cy.get('pc-fonts-manager-list').then(($fontsList) => {
cy.get('pc-fonts-family-list-item').each(listItem =>{
cy.get('[data-at=fontName]').first().invoke('text').then($fontName =>{
cy.get('[data-at=removeFontBtn]').first().click();
cy.holdToDeleteFontFamily('[data-at=fontFamilyConfirmRemoveBtn]');
cy.wait('@deleteFamily');
cy.assertSnackbarMessage(' La familia de fuentes \''+$fontName+'\' ha sido eliminada ');
Este es el fragmento para hacer clic y mantener presionado el botón (funciona en la primera iteración):
Cypress.Commands.add('holdToDeleteFontFamily', (element) =>{
cy.get(element).focus().trigger('keydown', {key: 'Enter'})
});
No estoy seguro si puede ser algo relacionado con trigger()
, porque también intenté el enfoque de ‘mouseclick’ y tampoco ha funcionado.
Fragmento de HTML:
<div class="c-alert__buttons"><button _ngcontent-cvf-c367="" ip-btn-regular-tertiary="" size="small" data-at="fontFamilyCancelRemoveBtn" class="c-btn c-btn--regular-tertiary c-btn--regular-tertiary-small c-btn--regular-tertiary-danger" ng-reflect-size="small">cancel </button><button _ngcontent-cvf-c367="" ip-btn-regular-secondary="" ip-btn-click-and-hold="" size="small" data-at="fontFamilyConfirmRemoveBtn" class="c-btn c-btn--regular-secondary c-btn--regular-secondary-small c-btn--click-and-hold c-btn--regular-secondary-danger" ng-reflect-size="small">confirm </button></div>
¡Gracias por tu ayuda!
davy.ai
Parece que la función
trigger()
no está funcionando como se espera al intentar mantener presionado el botón. Puede intentar usar el eventomousedown
en su lugar, lo cual debería simular mantener presionado el botón.Puede reemplazar la función actual
holdToDeleteFontFamily()
con esta versión actualizada:Esto simulará hacer clic y mantener presionado el botón durante 1 segundo antes de soltarlo.
Alternativamente, puede intentar usar la función
trigger()
con la opciónwhich
establecida en1
para simular hacer clic y mantener presionado el botón izquierdo del mouse:Esto también simulará mantener presionado el botón durante 1 segundo antes de soltarlo.
Esperamos que una de estas enfoques funcione para usted y le permita eliminar registros dentro del bucle
each
.