Как получить Angular 2 элемента через имя класса в Jasmine

Я могу получить элемент с помощью

fixture.debugElement.query(By.css('h1'));

Но что мне делать, когда я хочу получить элемент через имя класса. Что-то вроде этого

fixture.debugElement.query(By.css('class="name"'))

Ответ 1

Вы используете By.css для передачи селектора css. Таким образом, любой селектор, который вы можете использовать с помощью css, можно использовать с By.css. А селектор для класса просто .classname (с периодом).

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

Это лишь пример. Если вы знаете css, вы должны знать, как использовать селекторы.

Ответ 2

Я бы предпочел идентификатор пользователя на вашем DOM-элементе, а затем в angular2 unit test вам может вызвать что-то вроде ниже, чтобы получить ссылку на нужный элемент DOM и проверить, что вам нравится.

//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.").

Надеюсь на эту помощь.