我使用此函数检查元素是否具有特定的类:
hasClass: function (element, cls) {
return element.getAttribute('class').then(function (classes) {
return classes.split(' ').indexOf(cls) !== -1;
});
}
页面中有几个元素,可以包含一个特定的类(“ is-break”)来更改其样式。所有这些元素都具有“ free-terms-center__day-list--el__wrapper”类。
我正在做类似的事情:
element.all(by.css(".free-terms-center__day-list--el__wrapper")).count().then(value=>{
for (let index = 0; index < value; index++) {
console.log("heheh")
expect( helper.hasClass(element.all(by.css(".free-terms-center__day-list--el__wrapper")).get(index), ".is-break")).to.eventually.equal(true);
}
})
似乎不起作用,hasClass在for循环内返回false,但是元素上存在该类。
但是如果我做这样的事情:
const blocks = element.all(by.css(".free-terms-center__day-list--el__wrapper"));
expect( helper.hasClass(blocks.first(), ".is-break")).to.eventually.equal(true);
expect( helper.hasClass(blocks.last(), ".is-break")).to.eventually.equal(true);
expect( helper.hasClass(blocks.get(5), ".is-break")).to.eventually.equal(true);
作品
我想这与诺言有关,但是我可以在for循环内完成所有期望吗?
答案 0 :(得分:1)
如果您使用的是chai-as-promised
库,则可以将整个代码简化为:
element.all(by.css('.free-terms-center__day-list--el__wrapper')).each((elementToCheck) => {
expect(elementToCheck.getAttribute('class')).to.eventually.contains('is-break');
});