不稳定打开新页面量角器非角度站点

时间:2015-10-28 10:12:12

标签: javascript windows tabs jasmine protractor

当我在非角度站点中单击并且测试打开一个新的非角度站点选项卡时,我遇到了问题。有时可以工作(很多次),但有时会显示以下错误:

  

未知错误:条目中的空值: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]);
    });

我该如何解决?

1 个答案:

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