我为我公司的电子商务网站进行了数百次硒测试。特别是,其中大约一半是差异很小的结账测试(单程签证,多程美国运通等)。我提到这一点是因为所有这些测试都使用几乎完全相同的代码,只是略有不同。
这些测试从 Jenkins 开始,使用 Selenium Grid 作为集线器,并部署到同时运行 Chrome 和 IE 测试的 Windows Server 2012 VM。在开始我的测试后,几个小时后我会看到一个浏览器弹出窗口Command line server for the IE Driver has stopped working
和一个按钮Close the program
。这会导致测试执行挂起。
我已经尝试在VM上升级到最新版本的grid,以及最新版本的IE Driver Server。我还编写了一个Runtime.getRuntime().exec("taskkill /F /IM IEDriverServer.exe")
在每次测试开始时运行的小型休息服务器(我认为可能是一次打开的窗口过多导致了错误,但即使进行了此修复也无济于事)。我也尝试添加TabProcGrowth
到HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main
注册表,但这只是导致在每次测试开始时打开多个窗口,进一步破坏了事情。
此外,我实现了一个重试分析器,它将重试失败的测试。手动单击后Close the program
,测试将重新启动,几乎总是通过。考虑到这一点,以及结帐测试的性质,我认为问题不是代码问题。
我已经尝试了几天来解决这个问题。任何帮助将不胜感激!