量角器:失败:陈旧元素引用:元素未附加到页面文档

时间:2017-10-12 16:19:37

标签: javascript angularjs protractor

我正在为一些同事建立的Angular 4应用程序构建Protractor测试。事情进展顺利,但我遇到了可怕的“陈旧元素参考”错误。

定期失败的代码行非常简单:

expect(getElement('section.pipelines-container h6').getText()).toBe('PIPELINES')

然后调用我创建的这个函数:

export function getElement(bySelector, timeout=5000) {
    var i = 0;
    var startTime = Date.now();

    if (typeof(bySelector) === 'string') {
        bySelector = by.css(bySelector);
    }

    try {
        do {
            driver.wait(until.elementLocated(bySelector), timeout)
                .then(e => driver.wait(until.elementIsVisible(e)));

            if (element(bySelector).isDisplayed()) {
                break;
            }

            i++;
        } while (i < 3);
    }
    catch (ex) {
        console.log('Exception in e2e-utils.getElement: ' + ex.message)
    }

    if (i > 0) {
        console.log('Iterations: ' + i);
        console.log('Start: ' + startTime);
        console.log('End: ' + Date.now());
    }

    return element(bySelector);
}

我很好奇我还能做些什么来捕获这个错误并再次尝试获取元素?

0 个答案:

没有答案