使用Selenium WebDriver在两个浏览器窗口之间切换

时间:2012-07-23 14:07:08

标签: selenium webdriver

我使用Firefox Driver打开两个URL。每当我调用驱动程序时,都会打开新的firefox窗口。我必须在这两个窗口之间切换。我怎么能这样做?

2 个答案:

答案 0 :(得分:20)

您可以使用以下代码根据窗口标题

在窗口之间切换
 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 :(得分: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.
 }