我已经编写了以下代码来打开谷歌地图窗口获取它的URL然后关闭它并在我之前的窗口上执行操作:
try
{
String winHandleBefore = driver.getWindowHandle();
element("icon_google_map").click();
for(String winHandle : driver.getWindowHandles())
{
driver.switchTo().window(winHandle);
}
Thread.sleep(9000);
String currentURL = driver.getCurrentUrl();
logMessage(currentURL);
String expectedURL="xyz";
Assert.assertEquals(currentURL, expectedURL);
logMessage(currentURL);
driver.close();
driver.switchTo().window(winHandleBefore);
return true;
}
catch(Exception e)
{
return false;
}
上面的代码打开了地图窗口,但没有关闭它,而是在我在上一个窗口执行操作时显示以下错误。
错误: org.openqa.selenium.NoSuchWindowException:没有这样的窗口:目标窗口已经关闭
答案 0 :(得分:0)
你在切换之前关闭了驱动程序,所以selenium找不到窗口。
首先切换然后关闭驱动程序。
。driver.switchTo()窗口(winHandleBefore);
driver.close();
答案 1 :(得分:0)
检查以下代码行
driver.switchTo().window(getWindowHandles()[1]);
您没有切换到正确的窗口。 您可以通过切换到这样的第二个窗口来完成此操作。
$scope.$broadcast
答案 2 :(得分:0)
下面的代码将切换新窗口,也会切换Google MAP窗口
for(String winHandle : driver.getWindowHandles())
{
driver.switchTo().window(getWindowHandles()[1]);
driver.close(); // This will close the new open window
}