【问题标题】:Selenium not able to find new window handle in IE MODE but working in normal mode ( internet explorer )Selenium 无法在 IE 模式下找到新窗口句柄,但在正常模式下工作(Internet Explorer)
【发布时间】:2022-10-06 22:10:55
【问题描述】:

我正在尝试切换到一个新窗口,当我登录上一页时将打开该窗口。单击登录按钮后,将打开一个新选项卡并立即关闭,然后打开一个新窗口,Selenium IE 驱动程序无法识别此窗口句柄IE MODE但我可以在普通 Internet Explorer 浏览器中自动切换到这个新窗口。 Selenium 版本是 4.3.0.0。

我试图切换到新窗口的代码:

Thread.sleep(3000); // This delay is to avoid the new tab that gets closed immediately without this delay the driver is trying to switch to that new tab, after that any operation leads to throwing no browser exception. So this line is saving from the issue.
String desiredTitle = \"\";

while (!desiredTitle.contains(\"new window\")) {
    for (String ewh: driver.getWindowHandles()) {
        desiredTitle = driver.switchTo().window(ewh).getTitle();
    }
}

    标签: java selenium selenium-webdriver internet-explorer microsoft-edge


    【解决方案1】:

    Selenium 4 中有 known limitations 用于 IE 模式自动化。一种解决方法建议等到驱动程序得到处理。您可以尝试该文档中提供的示例代码。

    【讨论】:

    • 您好,感谢您的回答,但已知限制中存在的方法之前已经尝试过,但没有奏效,因为它只捕获窗口数量但我不需要,因为我想切换到具有的特定窗口一些标题,也正如我在问题中已经提到的那样,在立即单击登录按钮后,新选项卡会在弹出新窗口后打开和关闭,我需要切换此窗口,但新窗口所花费的时间是不可预测的。我希望你明白我的意思。干杯:)
    • 是的,我明白了。我已经测试了我的 IE 驱动程序以使用您的代码获取新创建的窗口的句柄/标题。实际上,它适用于我的情况。您可以检查两次“新窗口”是否正是新窗口标题的(部分)。顺便说一句,我使用的是 IE 驱动程序 4.3.0.0,它应该根据changelog 工作,说它“修复了有时无法获取新打开窗口句柄的 Edge IE 模式问题”。您可以在那里提出问题,通知团队此问题尚未完全解决。问候。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-20
    • 2014-12-09
    • 1970-01-01
    • 1970-01-01
    • 2019-11-24
    • 1970-01-01
    相关资源
    最近更新 更多