在Angular By.css中使用多选CSS的选择模式不会提供多个元素

时间:2019-02-02 09:30:07

标签: angular-testing

css中,我可以执行a[href^="https"],它选择每个<a>属性值以“ https”开头的href元素。如何在By.css的{​​{1}}中指定相同的规则?

Angularhttps://angular.io/api/platform-browser/By中定义为

By.css

我的static css(selector: string): Predicate<DebugElement>代码有多个Angular,它们的div属性等于idthumbnail-1。我想在我的thumbnail-2单元测试中得到所有这些。

此刻,我正在单独收集它们

Jasmine let imageThumbnailDiv1 = fixture.debugElement.query(By.css("#thumbnail-1"));

如果我使用多选模式,则只会得到第一个元素。有没有办法获取多个元素。

let imageThumbnailDiv2 = fixture.debugElement.query(By.css("#thumbnail-2"));

1 个答案:

答案 0 :(得分:0)

您可以使用 debugElement.queryAll 而不是 debugElement.query 来获取可以迭代的数组。

let thumbnails = fixture.debugElement.queryAll(By.css(".thumbnail"));

thumbnails.forEach((debugElement)=>{
    expect(debugElement)//Whatever you want to test
})