How to close the current tab of the browser in pro

2020-03-26 07:46发布

In the application i have two options "Google , Twitter" . When i click on any option it will open in new tab.

In my test case , i would like to click on google or twitter option and close the google or twitter tab and return back to the my application.

Is there any way to close only newly opened tab.

I tried below solutions.

browser.close(); it is closing the entire browser

Can any one help me how to close only tab of the browser ( in my case google tab or twitter tab) with out closing the entire browser in protractor

标签: protractor
3条回答
Viruses.
2楼-- · 2020-03-26 08:02

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.

查看更多
女痞
3楼-- · 2020-03-26 08:04

You can try the following:

Switch to the new opened tab. Close the current windows (in this case, the new tab). Switch back to the first window.

browser.getAllWindowHandles().then((handles) => {
    browser.driver.switchTo().window(handles[1]);
    browser.driver.close();
    browser.driver.switchTo().window(handles[0]);
});
查看更多
一纸荒年 Trace。
4楼-- · 2020-03-26 08:18

I did and this and it works for me :

  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]);
  });
});
查看更多
登录 后发表回答