量角器 - 切换到 window 或 iframe 后等待

Protractor - wait after switch to window or iframe

我正在尝试用 'wait' 替换 'timeouts' 或 'Sleeps' 以使测试更快。我无法找到等待切换到 window 或没有标识符的 iframe 的正确方法。

例如:

browser.sleep(5000);
browser.driver.switchTo().window(handles[0]).then(function() {
    // login.logout();
});

和:

flow.timeout(5000);

browser.switchTo().frame(0);

我最近用 自定义 Expected Condition 解决了一些非常相似的问题 检查指定数量的 window 句柄:

function windowCount (count) {
    return function () {
        return browser.getAllWindowHandles().then(function (handles) {
            return handles.length === count;
        });
    };
}; 

用法:

browser.wait(windowCount(2), 5000);