java - Selenium 无法识别 IE 中新打开的浏览器上的元素

标签 java selenium internet-explorer

在 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 和“受信任站点”启用保护模式。

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

最佳答案

摘自 InternetExplorerDriver 文档:

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

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

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

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

关于java - Selenium 无法识别 IE 中新打开的浏览器上的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56170237/

相关文章:

java - 如何在不添加 IE 驱动程序或 Chrome 驱动程序的情况下启动已安装的浏览器?

css - @font-face 在 IE 中显示不正确

javascript - 含有特殊字符的网页找不到

java - java动态连接任意access数据库

Java多线程在同一个 block 中等待和通知

java - 单击 id 定位的元素但结果仍然不正确

html - IE 与 Chrome 中的高度差异 (CSS)

java - 词库应用

Java缺少返回语句

python - 抓取 : download files from url