Tengo dos botones de radio, el primero marcado. Ahora, en mi archivo de prueba, quiero marcar el segundo botón de opción y luego continuar con las pruebas. No estoy encontrando una manera de hacerlo.
El siguiente es mi botón de radio:
<div class="form-check form-check-inline"> <input class="form-check-input" type="radio" name="RadioButton" (change)="some_func(true)" checked> <label class="form-check-label" for="inlineRadio1">Radio1</label> </div> <div class="form-check form-check-inline"> <input class="form-check-input" type="radio" name="RadioButton" (change)="some_func(false)"> <label class="form-check-label" for="inlineRadio2">Radio2</label> </div>Intenté lo siguiente para cambiar el valor de mi botón de opción, pero no funciona:
let options: DebugElement[] = fixture.debugElement.queryAll(By.css('input[type="radio"]')); options[1].triggerEventHandler('change', { target: options[1].nativeElement });¿Puede alguien ayudarme aquí? ¿Cómo puedo marcar el segundo botón de opción?
Creo que puedes encontrar una solución aquí:
Prueba de jazmín para la función de controlador de cambio de casilla de verificación en angular 12
opciones[0].triggerEventHandler('cambiar', { objetivo: { comprobado: verdadero } });
opciones[1].triggerEventHandler('cambiar', { objetivo: { comprobado: verdadero } });
Cypress tiene su propia API para interactuar con los elementos link
<div class="form-check form-check-inline" data-cy="form-check-label" > <input type="checkbox" /> ... cy.get('[data-cy=form-check-label]').find('input').check()
Imagine que div envolvió su entrada, usaría find() en su entrada secundaria y llamaría a check() . Use data-cy=some_name para dar a sus elementos selectores específicos de ciprés, luego sabrá si los atributos de los elementos cambian, por ejemplo, la clase, sus pruebas no se verán afectadas.