交互式服务检测窗口中的 IE11 互联网选项



我正在使用Jenkins,Selenium InternetExplorerDriver和TestNG在Win10中运行测试,测试应该在IE11的交互式服务检测窗口中运行。我已经设置了所有内容,但问题是我坚持测试,因为我无法在测试崩溃之前足够快地更改互联网选项。 首先,Win10不允许我在交互式服务检测窗口中使用鼠标或键盘,因此我需要将VNC与UltraVNC连接才能使其正常工作。 其次,VNC连接太慢,因此在我能够更改互联网选项之前,测试已经崩溃。 第三,将保护模式设置更改为桌面上的 IE 不会将设置更改为在"交互式服务检测"窗口中运行的 IE。

这是我在运行测试时进入 Jenkins 控制台的错误:

[测试] 配置失败:@BeforeSuite启动硒 [测试] org.openqa.selenium.SessionNotCreatedException: 意外错误 启动 Internet Explorer。保护模式设置不同 适用于所有区域。启用保护模式必须设置为相同的值 (启用或禁用)所有区域。

我之前问过IE11是否有任何全局设置可能也会影响交互式服务检测窗口中的IE,但我尝试通过使用本地组策略编辑器编辑设置来全局更改保护模式设置,但这不会影响交互式服务检测窗口中的IE。 我现在真的没有想法,所以我希望有人能引导我找到正确的方向。

经过数天和数小时为我的问题寻找正确的解决方案,答案终于非常简单了。我添加了 introduceFlakinessByIgnoringSecurityDomains() 功能,并将线程置于睡眠状态 50 秒,以便有时间对 Internet 选项进行所有更改。这是我解决问题的代码:

InternetExplorerOptions capability = new InternetExplorerOptions();
capability.introduceFlakinessByIgnoringSecurityDomains();
driver = new InternetExplorerDriver(capability);
try {
Thread.sleep(50000);
} catch (InterruptedException e) {
e.printStackTrace();
}

更改安全选项后,我注释了功能和 thread.sleep 行,因此它们不会干扰运行测试用例。

最新更新