Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Internet explorer Selenium Web驱动程序无法找到在接受警报后触发的新窗口_Internet Explorer_Selenium_Selenium Webdriver - Fatal编程技术网

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

Internet explorer Selenium Web驱动程序无法找到在接受警报后触发的新窗口,internet-explorer,selenium,selenium-webdriver,Internet Explorer,Selenium,Selenium Webdriver,这是我面临的问题 登录到应用程序 转到我的应用程序的特定模块 在页面中输入所有详细信息 点击保存按钮 收到警报并接受了 接受警报时,会弹出一个新窗口 我尝试使用以下代码查找活动的windows句柄,但它始终返回值1 Set<String> afterpopup = driver.getWindowHandles(); System.out.println("Active windows" + afterpopup.size()); for(String currentwindow :

这是我面临的问题

  • 登录到应用程序
  • 转到我的应用程序的特定模块
  • 在页面中输入所有详细信息
  • 点击保存按钮
  • 收到警报并接受了
  • 接受警报时,会弹出一个新窗口
  • 我尝试使用以下代码查找活动的windows句柄,但它始终返回值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();
        }
    }
    
    Set afterpopup=driver.getWindowHandles();
    System.out.println(“活动窗口”+afterpopup.size());
    用于(字符串currentwindow:afterpopup)
    {
    System.out.println(当前窗口);
    如果(!beforepopup.equalsIgnoreCase(currentwindow))
    {
    System.out.println(“进入窗口循环”);
    driver.switchTo()窗口(currentwindow);
    睡眠(500);
    driver.close();
    }
    }
    
    预期产量是多少?你看到了什么? 我想得到的活动窗口(如主窗口+弹出窗口)在我的情况下,它应该是2

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

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

    使用java8可以用于insted
    
    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);
      }
    
    公共静态字符串getNewWindow(WebDriver驱动程序){ List newWindow=driver.getWindowHandles().stream() .filter(n->windows.contains(n)=false).collect(collector.toList()); System.out.println(newWindow.get(0)); 返回newWindow.get(0); }
    Set afterpopup=driver.getWindowHandles()之前,为代码设置4-5秒的睡眠时间并检查输出。我有反应慢的诀窍。如果它仍然返回1,那么打开的窗口是一个弹出窗口,它是现有父窗口的一部分,而不是一个新窗口。