2016-01-19 147 views
1

基本我正在使用Maven与POM,并且我无法在第二个窗口中执行操作并单击发送窗口关闭后自动关闭父窗口,之后,我的Firefox驱动程序不起作用。自动关闭窗口并切换回硒窗口中的父窗口

**我用低于提到的三个选项不工作**

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

您需要打开新的窗口之前得到父窗口的句柄和SWITH回到它要用新窗口结束后, 。

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

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

我已经尝试了上述建议,它不工作,基本上我使用我自己的网络驱动程序,请参阅网址下面提供进一步参考 https://www.dropbox.com/s/2avinp6qhxguv96/TestWebDriver.java?dl=0&preview=TestWebDriver.java –

+0

@ChiragGupta弹出关闭后,'driver.getWindowHandles()'有一个窗口,还是它可以识别更多的窗口? – Guy