Javascript 量角器关闭当前选项卡

Javascript 量角器关闭当前选项卡,javascript,angularjs,selenium-webdriver,jasmine,protractor,Javascript,Angularjs,Selenium Webdriver,Jasmine,Protractor,我有一个非角度的页面,我需要点击2个链接。单击在新选项卡中自动打开的链接之一时。现在我切换到新选项卡并设置browser.ignoreSynchronization=false,因为新打开的选项卡是一个角度窗口;并调用我的一个测试。一旦核实。我想关闭当前选项卡,然后返回非角度页面,单击链接#2,该链接将在新选项卡中再次打开。我尝试了窗口。关闭,但我发现窗口未定义。我使用了browser.window,即使这样也不起作用。请告知 element(by.id('trMyUrl')); bro

我有一个非角度的页面,我需要点击2个链接。单击在新选项卡中自动打开的链接之一时。现在我切换到新选项卡并设置
browser.ignoreSynchronization=false
,因为新打开的选项卡是一个角度窗口;并调用我的一个测试。一旦核实。我想关闭当前选项卡,然后返回非角度页面,单击链接#2,该链接将在新选项卡中再次打开。我尝试了
窗口。关闭
,但我发现窗口未定义。我使用了browser.window,即使这样也不起作用。请告知

element(by.id('trMyUrl'));
    browser.getAllWindowHandles().then(function (handles) {
             var secondWindowHandle = handles[1];
             var firstWindowHandle = handles[0];
    browser.switchTo().window(secondWindowHandle).then(function () { //the focus moves on new tab\
    browser.ignoreSynchronization = false;    
    empLogin.test();
    window(secondWindowHandle).close()
    // window.close()
    // browser.close()
    // browser.window.close()

     })
});

关闭当前关注的第二个窗口,然后首先关闭“切换到”(switchTo())上一个选项卡,对其执行操作。这是怎么做的-

browser.switchTo().window(secondWindowHandle)
.then(function () {
    browser.ignoreSynchronization = false;    
    empLogin.test();
}).then(function(){
    browser.close(); //close the current browser
}).then(function(){
    browser.switchTo().window(firstWindowHandle) //Switch to previous tab
    .then(function(){
        //Perform your operations on the first tab
    });
});

希望有帮助。

您的代码正在关闭当前选项卡,但它关闭时没有执行empLogin.test()的测试。当我注释掉第一个WindowHandle代码并保持browser.close代码不变,然后运行测试时,我没有收到这样的窗口退出,目标窗口已关闭消息。请告知。您遇到此问题是因为
browser.close()
甚至在
empLogin.test()
完成之前正在执行。要处理此问题,请尝试从
empLogin.test()
返回一个承诺,然后使用该承诺添加
browser.close()
函数。或者我在回答中更新的承诺。您还需要切换到firstWindowHandle,因为量角器不知道应该在哪里执行测试。谢谢