失败:条目中的null值:切换弹出窗口时出现name = null错误

时间:2016-04-07 13:19:03

标签: javascript angularjs protractor

我正在尝试切换AngularJS应用程序的弹出窗口。以下是我的代码:

    browser.ignoreSynchronization = true;
    browser.getAllWindowHandles().then(function (handles) {
        browser.switchTo().window(handles[1]);

    });

获取以下错误:

Failed: null value in entry: name=null
Stack:
UnknownError: null value in entry: name=null

2 个答案:

答案 0 :(得分:5)

您可能尝试在实际打开之前切换到新选项卡 - 等待窗口句柄计数超过所需的计数并使用自定义预期条件:

function windowCount(count) {
    return function () {
        return browser.getAllWindowHandles().then(function (handles) {
            return handles.length >= count;
        });
    };
};
browser.wait(windowCount(2), 10000);

browser.getAllWindowHandles().then(function (handles) {
    browser.switchTo().window(handles[1]);
});

答案 1 :(得分:0)

在AngularJS应用程序中没有弹出窗口的句柄,我们需要获取弹出窗口的模型ID,然后需要识别它上面的元素

例如

var alertPop = element(by.id(' popId'))

期望(alertPop.isDisplayed())toBeTruthy();

var element = alertPop.element(by.model(' vm.message'));