我正在寫一個Angular2測試組件獲取元素,我注意到在教程這一行:Angular2測試 - 通過標識
de = fixture.debugElement.query(By.css('h1'));
de
被定義爲DebugElement
類型。
我怎樣才能得到DebugElement
ID?
這看起來非常簡單,但我無法在文檔中找到任何方向。
我正在寫一個Angular2測試組件獲取元素,我注意到在教程這一行:Angular2測試 - 通過標識
de = fixture.debugElement.query(By.css('h1'));
de
被定義爲DebugElement
類型。
我怎樣才能得到DebugElement
ID?
這看起來非常簡單,但我無法在文檔中找到任何方向。
您還可以使用by.css
de = fixture.debugElement.query(by.css('#theid'));
工作對我來說:
文件... component.html:
<ul id="submenu">
<li>
<a [routerLink]="['blankpage']"><span>Blank Page</span></a>
</li>
</ul>
文件...- spec.ts:
import { SidebarComponent} from './sidebar';
import { TestBed, async } from '@angular/core/testing';
import { HttpModule } from '@angular/http';
import { RouterTestingModule } from '@angular/router/testing';
import { ComponentFixture} from '@angular/core/testing';
import { By } from '@angular/platform-browser';
import { DebugElement } from '@angular/core';
describe('...',() => {
let comp : SidebarComponent;
let fixture : ComponentFixture<SidebarComponent>;
let de : DebugElement;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [
SidebarComponent
],
imports: [RouterTestingModule,HttpModule]
}).compileComponents();
}));
beforeEach(() => {
TestBed.configureTestingModule({
declarations: [
SidebarComponent
]
});
TestBed.compileComponents();
fixture = TestBed.createComponent(SidebarComponent);
fixture.detectChanges();
de = fixture.debugElement;
});
it('Sidebar element "Blank Page" was created',() => {
expect(de.nativeElement.querySelector('ul.submenu a span').textContent).toContain('Blank Page')
expect(de.nativeElement.querySelector('ul.submenu a span').textContent).toBeDefined()
});
it('Checking ul id',() => {
expect(de.nativeElement.querySelector('ul').getAttribute('id')).toMatch('submenu')
});
)}
這完全忽略了關於id的問題。 –
大聲笑...'id'和'class'在css中獲取選擇器有什麼區別? –
問題在於,OP大概對他的元素具有'id',並且想要在他的測試中使用它來查找它們,並且在最近的編輯之前,您的迴應沒有提及'id'。儘管如此,它並沒有超出JJB的簡潔明瞭的答案。 'By.css(「#myid」)是更好的方法。 –
我得到:TypeError:platform_browser_ 1.By.id不是函數 – ohadinho
我認爲你的例子屬於角1文檔 – ohadinho
你有沒有嘗試過使用by.css選擇器ID的散列? –