在应用程序中,我有两个选项" Google,Twitter" 。当我点击任何选项时,它将在新标签中打开。
在我的测试用例中,我想点击google或twitter选项并关闭google或twitter标签,然后返回我的应用程序。
有没有办法只关闭新打开的标签页。
我尝试了以下解决方案。
browser.close(); 它正在关闭整个浏览器
任何人都可以帮我解决如何关闭浏览器的标签(在我的情况下是google标签或twitter标签),而无需关闭量角器中的整个浏览器
答案 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.