2015-08-13 3 views
-1

Я написал следующий код, чтобы открыть окно карты Google получить это URL затем закрыть его и выполнить действия в моем предыдущем окне:закрытия нового окна в Selenium

 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

возможно дубликат [веб драйвера селена - переход к родительскому окну] (http://stackoverflow.com/questions/11359118/selenium-web-driver-switch-to-parent-window) – Rkstr22

ответ

0

вы закрываете драйвер перед включением так селеном не может найти окно.

сделать переключение сначала, затем закрыть драйвер.

driver.switchTo(). Window (winHandleBefore);

driver.close();

+0

Не переключается до закрытия, закрывает родительское окно? – Rkstr22

+0

может просто увеличить время ожидания и посмотреть, что произойдет? –

+0

На самом деле проблема с окном Google, ручка меняется, но она не закрывается. – Rkstr22

0

Проверьте ниже строки кода

for(String winHandle : driver.getWindowHandles()) 
      { 
       driver.switchTo().window(winHandle); 
      } 

Вы не переключаются в правой части окна. Вы можете сделать это, переключившись на второе окно, подобное этому.

driver.switchTo().window(getWindowHandles()[1]); 
+0

Я успешно переключаюсь на правильное окно, единственная проблема заключается в том, что новое окно карты Google не закрывается. – Rkstr22

+0

если я не ошибаюсь, то в вашем случае родительское окно закрывается. – Hemanth

0

Ниже код будет переключать новое окно и будет также окно MAP Google

for(String winHandle : driver.getWindowHandles()) 
      { 
       driver.switchTo().window(getWindowHandles()[1]); 
       driver.close(); // This will close the new open window 
      }