2016-01-19 7 views
1

Basic Я использую maven с POM, и я не могу переключить фокус на родительское окно после того, как я выполнил операцию во втором окне и автоматически щелкнул окно отправки, и после этого мой Драйвер Firefox не работает.автоматическое закрытие окна и переход к родительскому окну в selenium

** Я использовал три варианта, указанные ниже, которые не работают **

public void switchWindow() { 
     String handle = driver.getWindowHandle(); 
     Set<String> set = driver.getWindowHandles(); 
     set.remove(handle); 
     if (set.size() >= 1) { 
      driver.switchTo().window((String) set.toArray()[0]); 
     } 


    public WebDriver switchWindowByTitle(String title) 
    { 
     WebDriver popup = null; 
     Set<String> windowIterator = driver.getWindowHandles(); 
     System.err.println("No of windows : " + windowIterator.size()); 
     for (String s : windowIterator) { 
      String windowHandle = s; 
      popup = driver.switchTo().window(windowHandle); 
      System.out.println("Window Title : " + popup.getTitle()); 
      System.out.println("Window Url : " + popup.getCurrentUrl()); 
      if (popup.getTitle().equals(title)){ 
       System.out.println("Selected Window Title : " + popup.getTitle()); 
       return popup; 
      } 

     } 
     System.out.println("Window Title :" + popup.getTitle()); 
     System.out.println(); 
     return popup; 


public WebDriver switchWindowByTitle(String title) 
    { 

String currentWindow = driver.getWindowHandle(); 
    List<String> availableWindows = new ArrayList<String>(driver.getWindowHandles()); 

    for(String w : availableWindows) 
    { 
     if (w != currentWindow) 
     { 
     driver.switchTo().window(w); 
     if (driver.getTitle().equalsIgnoreCase(title)) 
      return true; 
     else 
     { 
      driver.switchTo().window(currentWindow); 
     } 
     } 
    } 
    return false; 
    } 
+0

Можете ли вы смотрите http://stackoverflow.com/questions/19112209/how-to-handle-the-new-window-in-selenium-webdriver и увидеть это решает ваш запрос? –

+0

@AbdulHameed: - Я уже ссылался на указанную выше ссылку, и если вы можете посмотреть, что мой второй вариант один и тот же –

ответ

2

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

// before opening the new window 
String parentWindow = driver.getWindowHandle(); 

// after the new window was closed 
driver.switchTo().window(parentWindow); 
+0

Я уже пробовал вышеуказанное предложение и его не работал, В основном я использую свой собственный веб-драйвер, пожалуйста, обратитесь к URL-адресу ниже приводятся дополнительные ссылки https://www.dropbox.com/s/2avinp6qhxguv96/TestWebDriver.java?dl=0&preview=TestWebDriver.java –

+0

@ChiragGupta После закрытия всплывающего окна 'driver.getWindowHandles()' имеет один окна, или он распознает больше окон? – Guy

Смежные вопросы