Selenium 测试后 Internet Explorer 11 未关闭
Internet Explorer 11 does not close after Selenium Test
我们在 Google 云上设置了多台 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 没有关闭,因此几乎不可能在该浏览器中进行测试。经过大约三个测试后,服务器速度变慢,我们必须手动登录并关闭所有 windows。
如果我们无法通过webdriver命令关闭IE,此时它成了挡路石,那么为什么我们不能借助语言帮助可能是Java我这边关闭它。
try {
Runtime.getRuntime().exec("taskkill /F /IM IEDriverServer.exe");
} catch (IOException e) {
e.printStackTrace();
}
知道通过驱动程序命令关闭浏览器很好,但直到它起作用我希望我们可以尝试上面的方法。见 this
谢谢,
穆拉利
正如@Sonny 在您的评论中提到的,您可能需要终止 "iexplorer.exe" 任务
我在预构建事件中都有:
taskkill /f /fi "pid gt 0" /im IEDriverServer.exe
taskkill /f /fi "pid gt 0" /im iexplore.exe
我们在 Google 云上设置了多台 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 没有关闭,因此几乎不可能在该浏览器中进行测试。经过大约三个测试后,服务器速度变慢,我们必须手动登录并关闭所有 windows。
如果我们无法通过webdriver命令关闭IE,此时它成了挡路石,那么为什么我们不能借助语言帮助可能是Java我这边关闭它。
try {
Runtime.getRuntime().exec("taskkill /F /IM IEDriverServer.exe");
} catch (IOException e) {
e.printStackTrace();
}
知道通过驱动程序命令关闭浏览器很好,但直到它起作用我希望我们可以尝试上面的方法。见 this
谢谢, 穆拉利
正如@Sonny 在您的评论中提到的,您可能需要终止 "iexplorer.exe" 任务
我在预构建事件中都有:
taskkill /f /fi "pid gt 0" /im IEDriverServer.exe
taskkill /f /fi "pid gt 0" /im iexplore.exe