2012-07-23 12 views

cevap

19

Eğer pencere geçmek için URL veya diğer bazı kriterleri kullanabilirsiniz pencere başlığı

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

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

Similary dayalı pencereler arasında geçiş yapmak için aşağıdaki kodu kullanabilirsiniz.

+1

Teşekkür ederim, benim için çalıştı. :) –

+0

bende! Bunu yapmak için çok iyi bir yöntem – sircapsalot

2

Ayrıca mainWindowHandle'a yeniden anahtarlama kapsamını da ekledim.

Farklı başlıklara sahip pencereleri teslim etmeniz şartıyla aşağıdaki işlevi kullanmayı deneyebilirsiniz.

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. 
}