我们在运行Selenium测试的Google Cloud上安装了多个Windows Server 2012计算机。他们在NodeJS中与Mocha一起运行。Chrome和Firefox可以按预期启动,运行和关闭,但IE 11不会关闭。结果,selenium服务器停止响应,并且IE中的所有测试开始失败。
这是我每个钩子前后的代码
// Launches browser, opens homepage, and closes the popup. exports.beforeEach = function(capability) { driver = utils.driver.launch(capability); utils.driver.open(driver); utils.driver.closePopup(driver); } exports.afterEach = function() { driver.quit(); }
我设置的功能如下
{ browserName: browser, version: version, screenResolution: resolution, requireWindowFocus: true, unexpectedAlertBehaviour: "dismiss", ignoreProtectedModeSettings: false, ignoreZoomSetting: false, nativeEvents: true, handlesAlerts: true, javascriptEnabled: true, enableElementCacheCleanup: true, cssSelectorsEnabled: true, usePerProcessProxy: false, elementScrollBehavior: 0, enablePersistentHover: false, pageLoadStrategy: "normal", ie: { ensureCleanSession: true, forceCreateProcessApi: true, browserCommandLineSwitches: "-private" } }
我搜索了几天,尝试了driver.close(),driver.quit(),IE设置和功能设置的不同组合,但它们没有用,我真的不知道该怎么做尝试。由于IE并未关闭,因此实际上无法在该浏览器中进行测试。经过约三项测试后,服务器速度变慢,我们必须手动登录并关闭所有窗口。
如果我们无法通过webdriver命令关闭IE,并且此时此刻它变得停滞不前,那么为什么我们不能从语言中寻求帮助,也许我是Java来关闭它。
try { Runtime.getRuntime().exec("taskkill /F /IM IEDriverServer.exe"); } catch (IOException e) { e.printStackTrace(); }
知道通过驱动程序命令关闭浏览器很好,但是直到它能起作用,我希望我们可以在上面尝试。看到这个
谢谢,穆拉利