【问题标题】:Selenium not able to identify elements on newly opened browser in IESelenium 无法识别 IE 中新打开的浏览器上的元素
【发布时间】:2019-05-17 03:03:59
【问题描述】:

在 IE 浏览器中,单击其中一个链接时,会打开一个新浏览器,但 selenium 无法将控制权移至新浏览器,也无法检测到新浏览器中的任何元素。

我正在使用这些 IE 设置。

InternetExplorerOptions option = new InternetExplorerOptions();
        option.setCapability(CapabilityType.BROWSER_NAME, "internet explorer");
        option.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION, true);
        option.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true);
        option.setCapability(InternetExplorerDriver.UNEXPECTED_ALERT_BEHAVIOR,UnexpectedAlertBehaviour.IGNORE);
        option.setCapability(InternetExplorerDriver.REQUIRE_WINDOW_FOCUS,true);
        option.setCapability("ignoreProtectedModeSettings", true);

        option.setCapability(CapabilityType.PAGE_LOAD_STRATEGY, "normal");
        option.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);

        option.setCapability(InternetExplorerDriver.IGNORE_ZOOM_SETTING, true);

我有 IE 浏览器的这些安全设置,但由于公司限制,我无法更改这些设置。 已为“Internet”和“受限站点”启用保护模式,但未为“本地 IntRANET”和“受信任站点”启用。

谁有其他方法来处理这个问题?

【问题讨论】:

  • 发布minimal reproducible example,其中包含您用于切换到新打开的浏览器等的代码。
  • 您能否发布一个代码示例,说明您如何将焦点移至新窗口以及如何检测其上的元素?我们将尝试检查您的代码并尝试找出问题的原因。
  • 您是否尝试过切换到新窗口?
  • 这里是代码- String parentWindow = driver.getWindowHandle(); Set 句柄 = driver.getWindowHandles(); for(String windowHandle : 句柄) { if(!windowHandle.equals(parentWindow)) { driver.switchTo().window(windowHandle); driver.manage().window().maximize();
  • 我同意@Sachin 的建议。您也可以尝试检查他的建议可能有助于缩小问题范围。

标签: java selenium internet-explorer


【解决方案1】:

摘自 InternetExplorerDriver 文档:

所需配置: "在 IE 7 或更高版本的 Windows Vista 或 Windows 7 上,您必须将每个区域的保护模式设置设置为相同的值。该值可以打开或关闭,只要每个区域都相同. 要设置保护模式设置,请从“工具”菜单中选择“Internet 选项...”,然后单击“安全”选项卡。对于每个区域,选项卡底部都会有一个标记为“启用保护模式”的复选框。”

https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver

除非所有四个区域的保护模式设置相同,否则无法切换到新窗口。几个月前我遇到了这个问题,除非按照上面引用的文档完成保护模式设置,否则今天无法切换到新窗口。

我通过购买一台专门用于运行自动化脚本的测试机器来完成这项工作(我们在我的组织中使用 Selenium Grid),并为所有四个区域设置相同的保护模式设置。

【讨论】:

    猜你喜欢
    • 2016-08-30
    • 2013-11-07
    • 1970-01-01
    • 1970-01-01
    • 2018-02-01
    • 2021-06-10
    • 2015-12-08
    • 2013-04-05
    • 1970-01-01
    相关资源
    最近更新 更多