一尘不染

selenium测试后,Internet Explorer 11无法关闭

selenium

我们在运行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并未关闭,因此实际上无法在该浏览器中进行测试。经过约三项测试后,服务器速度变慢,我们必须手动登录并关闭所有窗口。


阅读 391

收藏
2020-06-26

共1个答案

一尘不染

如果我们无法通过webdriver命令关闭IE,并且此时此刻它变得停滞不前,那么为什么我们不能从语言中寻求帮助,也许我是Java来关闭它。

  try {
Runtime.getRuntime().exec("taskkill /F /IM IEDriverServer.exe");
} catch (IOException e) {
e.printStackTrace();
}

知道通过驱动程序命令关闭浏览器很好,但是直到它能起作用,我希望我们可以在上面尝试。看到这个

谢谢,穆拉利

2020-06-26