Angular2 E2E量角器。等到元素有了类

时间:2017-04-27 09:00:03

标签: angular typescript protractor web-deployment

我需要找到一种方法来等待我的e2e测试(angular2项目),直到测试的元素获得特定的css类

没有browser.wait()browser.sleep()

有没有办法?

2 个答案:

答案 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');
    }