Driver.getWindowHandles() 在 Windows 10 上的 IE11 中总是返回 1,尽管有两个窗口打开

Posted

技术标签:

【中文标题】Driver.getWindowHandles() 在 Windows 10 上的 IE11 中总是返回 1,尽管有两个窗口打开【英文标题】:Driver.getWindowHandles() is always returning 1 in IE11 on Windows 10, although there are two windows open 【发布时间】:2017-03-02 01:38:43 【问题描述】:

上下文代码:

    Set<String> handles = driver.getWindowHandles();

        String firstWinHandle = driver.getWindowHandle(); 
        handles.remove(firstWinHandle);

        String winHandle=handles.iterator().next();

        if (winHandle!=firstWinHandle)

            //To retrieve the handle of second window, extracting the handle which does not match to first window handle

            String secondWinHandle=winHandle; //Storing handle of second window handle

            //Switch control to new window

            driver.switchTo().window(secondWinHandle);
        

此代码在 Windows 7 和 Windows 8.1 上的 IE11 上完美运行以切换到第二个窗口,但在 Windows 10 上不起作用。

在 Windows 10 的情况下,Java.util.NoSuchElement Exception 出现在行

String winHandle=handles.iterator().next();

使用的 Selenium 和 IE 版本是 2.53.1。

【问题讨论】:

你有解决办法吗? 【参考方案1】:

我遇到了同样的问题。 在所有区域的 IE 设置中禁用保护模式会有所帮助。

【讨论】:

以上是关于Driver.getWindowHandles() 在 Windows 10 上的 IE11 中总是返回 1,尽管有两个窗口打开的主要内容,如果未能解决你的问题,请参考以下文章

Selenium API常用方法

WebDriver switching to new window

Java Selenium - 处理页面弹出窗

切换到链接打开的新浏览器窗口

浏览器多窗口切换处理

java selenium 操作弹出窗口