在Selenium WebDriver中处理新的Web浏览器窗口

时间:2013-08-12 03:11:13

标签: automation selenium-webdriver

当我点击网页中的帮助屏幕时,它会打开一个新的网络浏览器窗口,其中包含帮助网页的信息。我想阅读该网页的一些文字或标题,但我无法阅读该帮助窗口的任何内容。此案例的主要目的是验证帮助屏幕内容并在验证帮助屏幕后关闭该帮助窗口。我正在使用的代码如下:

public void verifyNewWindow(String buttonId,String screenShotFileName)     {

    String winHandleBefore = driver.getWindowHandle();
    clickOnButton(buttonId); //Clicking on help button on a webpage, help id is passed from baseclass)
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    for(String winHandle : driver.getWindowHandles()){
        if(!winHandle.equals(winHandleBefore))
        {
            driver.switchTo().window(winHandle);
            takeScreenShot(screenShotFileName);
            driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
            driver.close();
            break;

        }
    }
           driver.switchTo().window(winHandleBefore);
}

1 个答案:

答案 0 :(得分:0)

打开新窗口后首先获取窗口句柄(不是句柄)。

Set<String> windows = driver.getWindowHandles();

获得窗口句柄后,迭代它们并获得子窗口句柄,如下所示;

String parent = null;
String child = null;
Iterator it = windows.iterator();
while(it.hasNext())
{
  parent = it.next();
  child = it.next();
}

然后切换到子窗口。

driver.switchTo().window(child);