2012-07-23 139 views

回答

19

你可以用下面的代碼基於窗口的標題

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

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

與之相似,你可以使用URL或其他一些標準來切換窗口的窗口之間進行切換。

+1

謝謝,它爲我工作。 :) – 2012-12-18 20:14:44

+0

我也是!這是非常好的方法 – sircapsalot 2013-09-12 19:43:54

2

我也添加了切換回mainWindowHandle的範圍。

如果您正在處理具有不同標題的窗口,則可以嘗試使用以下功能。

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. 
} 
相關問題