Webdriver:如何切换到特定窗口?

时间:2013-09-26 09:04:56

标签: java selenium webdriver

我遇到了许多在Windows之间切换的解决方案,其中之一是:

Set<String> allWindows = driver.getWindowHandles();
for(String currentWindow : allWindows){
   driver.switchTo().window(currentWindow);
}

但是,我无法进入特定的窗口。有人能告诉我如何从父窗口切换到第三个窗口(使用java客户端库)?

3 个答案:

答案 0 :(得分:0)

你快到了。如果要切换到窗口,首先将窗口ID存储在数组中并切换到某个特定窗口。有些事情如下。如果您需要更多帮助,请告诉我。快乐的编码。

Set handles = driver.getWindowHandles();
        String[] individualHandle = new String[handles.size()];
        Iterator it = handles.iterator();
        int i =0;
        while(it.hasNext())
        {
            individualHandle[i] = (String) it.next();
            i++;
        }

driver.switchTo().window(individualHandle[1]);

答案 1 :(得分:0)

public static void switchWindow(String text) {
    WebDriver popup = null;
    Iterator<String> windowIterator = driver.getWindowHandles()
            .iterator();
    while (windowIterator.hasNext()) {
        String windowHandle = windowIterator.next();
        popup = driver.switchTo().window(windowHandle);
        String title = popup.getTitle();
        if (title.contains(text)) {
            break;
        }
    }
}

这将为您提供包含特定文本的任何窗口,您无需具体说明。

答案 2 :(得分:0)

以下方法将导航到特定窗口

public static void switchToParticularWindow(WebDriver driver, int index) throws InterruptedException {
        ArrayList<String> tabs = new ArrayList(driver.getWindowHandles());
        driver.switchTo().window(tabs.get(index));
        Thread.sleep(2000);
        logger.info("Switched to new tab");
    }