当我在非角度站点中单击并且测试打开一个新的非角度站点选项卡时,我遇到了问题。有时可以工作(很多次),但有时会显示以下错误:
未知错误:条目中的空值:name = null
这是代码:
browser.ignoreSynchronization = true;
element(by.id('go')).click().then(function () {
browser.driver.getAllWindowHandles().then(function (handles) {
browser.driver.switchTo().window(handles[1]).then(function () {
browser.wait(EC.visibilityOf(element(by.id('text'))), 15000);
expect(element(by.id('text')).getText()).toEqual('Works');
expect(element(by.css('#crumbsNav .last')).getText()).toEqual('Payment');
});
browser.driver.close();
browser.driver.switchTo().window(handles[0]);
});
我该如何解决?
答案 0 :(得分:0)
UnknownError:条目中的null值:name = null
表示您正在尝试切换到此时未打开的窗口。 你应该等待标签的数量超过1,然后再切换。
所以:
browser.ignoreSynchronization = true;
element(by.id('go')).click().then(function () {
browser.driver.getAllWindowHandles().then(function (handles) {
browser.wait(function(){return handles.size() > 1}, 15000);//MY ADDITION
browser.driver.switchTo().window(handles[1]).then(function () {
browser.wait(EC.visibilityOf(element(by.id('text'))), 15000);
expect(element(by.id('text')).getText()).toEqual('Works');
expect(element(by.css('#crumbsNav .last')).getText()).toEqual('Payment');
});
browser.driver.close();
browser.driver.switchTo().window(handles[0]);
});