2

我正在使用 Selenium Grid 2。

我有一个集线器和 6 个节点。我遇到的问题是由于意外的 javascript 弹出窗口导致一些测试失败,并且 selenium 似乎没有清理这些会话。测试完成后,仍然有浏览器打开(每台测试机器上有多个浏览器),并且仍然有 IEDriverServer.exe 进程在运行。

这是我正在使用的 hub.json 文件:

{
  "host": null,
  "port": 4444,
  "newSessionWaitTimeout": -1,
  "servlets" : [],
  "prioritizer": null,
  "capabilityMatcher": "org.openqa.grid.internal.utils.DefaultCapabilityMatcher",
  "throwOnCapabilityNotPresent": true,
  "nodePolling": 5000,

  "cleanUpCycle": 5000,
  "timeout": 300000,
  "browserTimeout": 60000
}

任何额外的输入表示赞赏......

仅供参考,我的框架中确实有一个 finally 块,它做的最后一件事是

driver.Dispose();
4

1 回答 1

0

我的观点来自 Java,但如果 .Dispose() 方法做了两件事,我会想象它会起作用:

  1. 调用 driver.quit() (不是 driver.close() )
  2. 然后,设置 driver = null 来标记垃圾回收

据我所知,Selenium 中没有自动清理浏览器的超时。您可以在驱动程序上设置 3 种不同类型的超时,但都与您的要求无关。

作为旁注,我在“@AfterClass”注释中调用 driver.quit()。然后在我的每个类中,它将通过参数化数据运行多次,然后最终退出浏览器。在我的“@AfterTest”注释中,我做与准备最终 HTML 报告相关的事情。

于 2014-01-29T21:58:54.310 回答