我们在Google Cloud上设置了多台Windows Server 2012计算机,我们正在运行Selenium测试。他们在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没有关闭它,因此几乎无法在该浏览器中进行测试。经过大约三次测试后,服务器速度变慢,我们必须手动登录并关闭所有窗口。
答案 0 :(得分:4)
正如@Sonny在评论中所提到的,你可能需要杀死“iexplorer.exe”任务
我在预制活动中都有:
taskkill /f /fi "pid gt 0" /im IEDriverServer.exe
taskkill /f /fi "pid gt 0" /im iexplore.exe
答案 1 :(得分:2)
如果我们无法通过webdriver命令关闭IE,并且此时它已成为停止,那么为什么我们不能从语言中获取帮助可能是Java从我这边关闭它。
try {
Runtime.getRuntime().exec("taskkill /F /IM IEDriverServer.exe");
} catch (IOException e) {
e.printStackTrace();
}
知道通过驱动程序命令关闭浏览器是好的,但直到它开始工作我希望我们可以尝试上面。见this
谢谢你, 穆拉利