2012-07-23 4 views

Répondre

19

vous pouvez utiliser le code ci-dessous pour basculer entre les fenêtres sur la base du titre de la fenêtre

private void handleMultipleWindows(String windowTitle) { 
      Set<String> windows = driver.getWindowHandles(); 

      for (String window : windows) { 
       driver.switchTo().window(window); 
       if (driver.getTitle().contains(windowTitle)) { 
        return; 
       } 
      } 
     } 

similairement vous pouvez utiliser l'URL ou d'autres critères pour changer de fenêtre.

+1

Merci, cela a fonctionné pour moi. :) –

+0

moi aussi! très bonne méthode pour le faire – sircapsalot

2

J'ai également ajouté la possibilité de revenir à mainWindowHandle.

Vous pouvez essayer d'utiliser la fonction ci-dessous à condition de manipuler des fenêtres avec des titres différents.

private String mainWindowsHandle; // Stores current window handle 
public static boolean swithToWindow(WebDriver driver,String title){ 
    mainWindowsHandle = driver.getWindowHandle(); 
    Set<String> handles = driver.getWindowHandles(); // Gets all the available windows 
    for(String handle : handles) 
    { 
    driver.switchTo().window(handle); // switching back to each window in loop 
    if(driver.getTitle().equals(title)) // Compare title and if title matches stop loop and return true 
    return true; // We switched to window, so stop the loop and come out of funcation with positive response 
    } 
    driver.switchTo().window(mainWindowsHandle); // Switch back to original window handle 
    return false; // Return false as failed to find window with given title. 
} 
Questions connexes