在Selenium Webdriver中处理多个窗口

时间:2012-01-05 12:10:49

标签: selenium selenium-webdriver

如果一个相同的测试用例同时打开两个以上的窗口,那么如何一次处理这些多个窗口,更具体地说,如果我希望我的主窗口稍后关闭而其他窗口先关闭,该怎么办? / p>

2 个答案:

答案 0 :(得分:0)

您可以使用

driver.switchTo().window("windowName");

在调用driver.close()之前选择正确的窗口。 (如果没有窗口,浏览器将关闭。)

有更多信息here

答案 1 :(得分:0)

你可以做这样的事情

1.打开子窗口(点击链接等)

parentWindowHandle = driver.getWindowHandle();

2.每个新窗口

    public String getChildHandle(WebDriver driver,String parentWindowHandle)
    {
        String childWindowHandle = null;

        Set<String> allWindowHandles = driver.getWindowHandles();
        Iterator itr = allWindowHandles.iterator();

        while(itr.hasNext())
        {
            String temp=(String) itr.next();
            if(temp.equalsIgnoreCase(parentWindowHandle))  // you can compare with any handle or you can compare with all existing window handles
            {
                System.out.println("Same as parent handle-> "+temp);
            }
            else
            {
                childWindowHandle = temp;
            }
        }
        return childWindowHandle;
    }

3.关闭任何不需要的窗口

driver.switchTo().window(parentWindowHandle/childWindow1/childWindow2);
driver.close();