Pregunta Pruebas angulares 2: obtén estilos de elemento DOM


Quiero probar la funcionalidad de mi botón hide-show en mi aplicación Angular 2 (las pruebas están escritas en Jasmine), así que necesito verificar el valor del display propiedad del elemento relevante. ¿Cómo puedo obtener esta propiedad usando Angular's debugElement? Código de prueba:

let input = fixture.debugElement.query(By.css('input'));
expect(input.styles['visibility']).toBe('false');

Me sale el error: Esperado indefinido para ser 'falso'.


12
2018-02-01 12:33


origen


Respuestas:


Yo estaba teniendo el mismo problema. los DebugElement.styles es siempre un objeto vacío incluso si configuro un estilo para ese elemento de forma explícita (¿quizás error en el código angular?). Así que preferiría obtener eso del navegador native element directamente:

let input = fixture.debugElement.query(By.css('input'));
expect(input.nativeElement.style.visibility).toBe('false');

3
2017-09-13 23:02



Para cualquiera que tropiece con este ejemplo, la solución para este problema específico con display es el hidden propiedad en el debugElement. Contendrá true si el elemento está oculto y false de otra manera.


0
2017-07-30 10:31