Comment faire pour obtenir L'élément Angular 2 à travers le nom de la classe dans Jasmine
je peux obtenir de l'élément avec l'aide de la
fixture.debugElement.query(By.css('h1'));
mais ce que je devrais faire quand je veux obtenir l'élément par le nom de classe. Quelque chose comme ceci
fixture.debugElement.query(By.css('class="name"'))
3 réponses
Vous utilisez By.css
pour passer un sélecteur css. De sorte que toute sélecteur vous pouvez utiliser avec css, vous pouvez utiliser By.css
. Et un sélecteur pour une classe est tout simplement .classname
(par période).
By.css('.classname') // get by class name
By.css('input[type=radio]') // get input by type radio
By.css('.parent .child') // get child who has a parent
ce ne sont que quelques exemples. Si vous connaissez css, alors vous devriez savoir comment utiliser les sélecteurs.
EDIT:
Pour utiliser By.css()
assurez-vous de import { By } from '@angular/platform-browser';
je préférerais l'identifiant d'utilisateur sur votre élément DOM et ensuite dans l'unité angular2 vous tester peut appeler quelque chose comme ci-dessous pour obtenir la référence de votre élément DOM désiré et de tester ce que jamais vous le souhaitez.
//typscript syntax
fixture = TestBed.createComponent(<your component>);
let result = fixture.nativeElement.querySelector('<id attribute name of html element>');
expect(result.id).toEqual("id of your DOM element.").
Espérons que cette aide.
Juste pour ajouter quelques autres utile des moyens pour la sélection d'éléments:
// get element with multiple classes
fixture.debugElement.query(By.css('.className1.className2'));
// get a certain element from a group of elements with the same class name
fixture.debugElement.queryAll(By.css('.className'))[1];