在Selenium关闭新窗口

时间:2015-08-13 09:20:31

标签: java selenium-webdriver window-handles

我已经编写了以下代码来打开谷歌地图窗口获取它的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:没有这样的窗口:目标窗口已经关闭

3 个答案:

答案 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
             }