【问题标题】:Internet Explorer 11 does not close after Selenium TestSelenium 测试后 Internet Explorer 11 未关闭
【发布时间】:2016-04-19 21:09:51
【问题描述】:

我们在运行 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 没有关闭,因此几乎无法在该浏览器中进行测试。经过大约三个测试后,服务器变慢了,我们必须手动登录并关闭所有窗口。

【问题讨论】:

    标签: selenium selenium-webdriver mocha.js windows-server-2012


    【解决方案1】:

    正如@Sonny 在 cmets 中提到的,您可能需要终止“iexplorer.exe”任务

    我在预构建事件中都有:

        taskkill /f /fi "pid gt 0" /im IEDriverServer.exe
        taskkill /f /fi "pid gt 0" /im iexplore.exe
    

    【讨论】:

      【解决方案2】:

      如果我们无法通过 webdriver 命令关闭 IE,而此时它变成了停止的石头,那么为什么我们不能从语言中寻求帮助,可能是我这边的 Java 来关闭它。

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

      知道通过驱动程序命令关闭浏览器很好,但在它成功之前我希望我们可以在上面尝试。见this

      谢谢你, 壁画

      【讨论】:

      • 谢谢!这行得通,除了我们必须杀死“iexplore.exe”而不是 IEDriverServer.exe。
      • 浏览器正在关闭,但问题是,我无法执行我的代码,因为当我创建 IE 实例时,即使我提供了 ImplicitWait,它也会获取 url 并立即关闭浏览器。你能帮帮我吗
      • 你在上面的答案中使用过 iexplorer.exe 吗?按照桑尼的说法使用它,这样它就会杀死浏览器而不是iedriverserver。
      猜你喜欢
      • 2012-07-15
      • 1970-01-01
      • 2019-11-20
      • 2018-08-16
      • 2011-04-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多