如何在量角器中关闭浏览器的当前选项卡而不关闭整个浏览器

时间:2018-02-02 07:21:57

标签: protractor

在应用程序中,我有两个选项" Google,Twitter" 。当我点击任何选项时,它将在新标签中打开。

在我的测试用例中,我想点击google或twitter选项并关闭google或twitter标签,然后返回我的应用程序。

有没有办法只关闭新打开的标签页。

我尝试了以下解决方案。

browser.close(); 它正在关闭整个浏览器

任何人都可以帮我解决如何关闭浏览器的标签(在我的情况下是google标签或twitter标签),而无需关闭量角器中的整个浏览器

3 个答案:

答案 0 :(得分:6)

您可以尝试以下操作:

切换到新打开的标签页。关闭当前窗口(在本例中为新选项卡)。切换回第一个窗口。

browser.getAllWindowHandles().then((handles) => {
    browser.driver.switchTo().window(handles[1]);
    browser.driver.close();
    browser.driver.switchTo().window(handles[0]);
});

答案 1 :(得分:0)

我这样做了,这对我有用:

  browser.getAllWindowHandles().then(function(handles) {
  let newWindowHandle = handles[1]; // this is your new window
  browser.switchTo().window(newWindowHandle).then(function() {
    browser.close();
    browser.switchTo.window(handles[0]);
  });
});

答案 2 :(得分:0)

This is how I used it in one project.

    const allWindowHandlers = await browser.getAllWindowHandles();

        if (allWindowHandlers.length > 1) {
          for (let windowHandlerIndex = 1; windowHandlerIndex < allWindowHandlers.length; windowHandlerIndex++) {
            const windowHandler = allWindowHandlers[windowHandlerIndex];
            await browser.switchTo().window(windowHandler);
            await browser.close();
          }
        }

    await browser.switchTo().window(allWindowHandlers[0]);

You can use it inside your steps implementation.

You can use it before starting a new scenario, to be sure that only the first window is selected and everything else is closed.