0

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

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);
}
4

1 回答 1

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);
于 2013-08-12T15:40:47.953 回答