我需要找到一种方法来等待我的e2e测试(angular2项目),直到测试的元素获得特定的css类。
没有browser.wait()
或browser.sleep()
?
答案 0 :(得分:5)
你甚至使用过"等等"在问题中,但要求在没有内置等待功能的情况下解决它。我没有太多意义。
我们之前已经解决了类似问题,并提出了自定义等待功能,可以将browser.wait()
用作预期条件:
function waitForCssClass(elementFinder, desiredClass) {
return function () {
return elementFinder.getAttribute('class').then(function (classValue) {
return classValue && classValue.indexOf(desiredClass) >= 0;
});
};
};
browser.wait(waitForCssClass($("#myid"), "desiredClass"), 5000);
答案 1 :(得分:0)
给定元素对象(ElementFinder)和要检查的CSS类,此函数等待类从元素中消失。
static async waitCssClassToDisappear(elem:ElementFinder, cssClass:string, timeout?: number) {
await browser.wait(()=>{
return elem.getAttribute('class').then((value) =>{
return value.indexOf(cssClass) < 0;
});
}, timeout ? timeout : Utils.defaultTimeout, 'CSS class did not disappear within specified timeout');
}