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

时间:2018-03-13 08:08:55

标签: java jenkins selenium-webdriver testng internet-explorer-11

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

这是我在运行test时遇到Jenkins控制台的错误:

  

[testng] FAILED CONFIGURATION:@BeforeSuite startSelenium [testng]   org.openqa.selenium.SessionNotCreatedException:意外错误   启动Internet Explorer。保护模式设置不一样   适用于所有区域。启用保护模式必须设置为相同的值   (启用或禁用)所有区域。

我之前在此问过,IE11的任何全局设置都可能影响交互式服务检测窗口中的IE,但我尝试通过使用本地组策略编辑器编辑设置来全局更改保护模式设置,但是没有& #39;在“交互式服务检测”窗口中影响IE。 我此刻真的没有想法,所以我希望有人可以引导我走向正确的方向。

1 个答案:

答案 0 :(得分:0)

经过数天和数小时的搜索正确的解决方案来解决我的问题,答案终于非常简单了。我添加了introductionFlakinessByIgnoringSecurityDomains()功能,并让线程休眠50秒,让我有时间对Internet选项进行所有更改。这是我的代码解决了这个问题:

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

更改安全选项后,我评论了功能和thread.sleep线路,这样就不会打扰运行测试用例。