Selenium Web驱动程序无法在接受警报后找到触发的新窗口

时间:2014-11-19 07:33:09

标签: internet-explorer selenium selenium-webdriver

这是我面临的问题,

  1. 登录该应用程序
  2. 转到我的应用程序的指定模块
  3. 输入页面中的所有详细信息。
  4. 点击“保存”按钮。
  5. 收到提醒并接受
  6. 接受警报时,新窗口加速
  7. 我尝试使用以下代码查找活动窗口句柄,但它始终返回值1

    Set<String> afterpopup = driver.getWindowHandles();
    System.out.println("Active windows" + afterpopup.size());
    for(String currentwindow : afterpopup)
    {
        System.out.println(currentwindow);
        if(!beforepopup.equalsIgnoreCase(currentwindow))
        {
            System.out.println("entered window loop");
            driver.switchTo().window(currentwindow);
            Thread.sleep(500);
            driver.close();
        }
    }
    

    预期产量是多少?你怎么看? 我希望得到活动窗口(如主窗口+弹出窗口),在我的情况下应该是2。

    Selenium版本:2.44
    操作系统:Windows 7
    浏览器:Internet Explorer
    浏览器版本:8.0.7

    注意:我在弹出窗口中收到此错误(window.opener.document为null或不是对象)。请帮我这个!!

1 个答案:

答案 0 :(得分:0)

Using java8 you can use for insted 

public static String getNewWindow(WebDriver driver) {
    List<String> newWindow = driver.getWindowHandles().stream()
        .filter(n -> windows.contains(n) == false).collect(Collectors.toList());
    System.out.println(newWindow.get(0));
    return newWindow.get(0);
  }