Estoy trabajando en una aplicación web y uso cypress para crear un caso de prueba. Esa aplicación está desarrollada en angular, y tengo que completar todos los campos requeridos y hacer clic en el botón Guardar. Tengo un campo de entrada y 2 campos de cuadro combinado (mat-select) y 1 botón de carga después de que todos estos estén completamente llenos. El botón Guardar debe habilitarse. el botón Guardar no está habilitado incluso después de que se completaron todos los campos. ¿Alguien puede proporcionar una solución para esto?
beforeEach(() => { cy.fixture('Models-add.json').as('add')//.then(function(data) }) it('Simulators Add testcase', function(){ //clicking Add button cy.get('.button-text').click() //Adding cy.get('input#mat-input-0').type(this.add.Name) cy.get('input#mat-input-0').should($inputs => { //cy.log($inputs.val().length) const val = $inputs.val() expect(val.length).not.be.lessThan(3) .and.have.not.to.be.greaterThan(126) }) }) //selecting static dropdown from make it('selecting static dropdowns', ()=>{ cy.get('mat-select').as('listbox') cy.get('@listbox').first().click() cy.get('.mat-option-text span') //.contains('Intel') .then(option => { option[0].click({multiple:true}); }); //selecting type cy.get('mat-select').as('listbox1') cy.get('@listbox1').last().click() cy.get('.mat-option-text span:visible') //.contains('ACTUATOR') .then(option => { option[0].click({force: true}); // cy.get().should('have.value','ACTUATOR') })}) it('Subir archivo DD', ()=>{ const DDfilepath = 'Dispositivo-variable.json' //'C:\CypressAutomation\cypress\fixtures\Device-variable.json' cy.get('button. button-upload-parts').click({force: true}) cy.get('input.form-control[type="file"]:visible').attachFile(DDfilepath) }) it('Guardar clic en el botón ', ()=>{ var vacío = falso; cy.get('simulator-part-form > form').each(($item, index, $list)=> { if ($item.val() = = '') { vacío = verdadero; } }) cy.log(vacío) cy.get("button[type='submit'] span[class='mat-button-wrapper']").as('savebtn ') if (vacío) { //cy.get("button[type='submit'] span[class='mat-button-wrapper']")//invoke('prop', 'ng-reflect-disabled ', true); cy.get('@savebtn').should('be.disabled') } else { // cy.get('@savebtn').invoke('removeAttr','disabled').click () cy.get('@savebtn').should('not.be.disabled') // cy.get("button[type='submit'] span[class='mat-button-wrapper']" ).invoke('prop', 'ng-reflect-disabled', false); cy.get('#mat-dialog-0 > simulador-parte-formulario > formulario > div.mat-dialog-actions.form -btns > button.mat-focus-indicator.btn-cancel.mat-raised-button.mat-button-base > span.mat-button-wrapper').click() } })