如何检测未使用的webriver对象

时间:2018-02-12 05:33:49

标签: java selenium selenium-webdriver

我的测试用例很少,驱动程序对象没有关闭,但测试用例已经完成。在以下测试用例中,如何识别驱动程序对象不再被引用。换句话说,什么时候未使用的webdriver对象会丢失它。

1 个答案:

答案 0 :(得分:0)

根据最佳做法,系统内存中不应有 WebDriver 对象未被关闭或销毁(即悬空)完成 Test Suite 的执行后。

要让测试系统免于未使用的 WebDriver Web客户端对象,您应该调用 quit() < / {strong> tearDown() method {}内的方法。通过 {&#34;发送&#34;退出&#34; 命令,调用 quit() DELETE当前浏览会话flags&#34;:[&#34; eForceQuit&#34;]} ,最后在 / shutdown EndPoint上发送 GET 请求。以下是一个例子:

1503397488598   webdriver::server   DEBUG   -> DELETE /session/8e457516-3335-4d3b-9140-53fb52aa8b74 
1503397488607   geckodriver::marionette TRACE   -> 37:[0,4,"quit",{"flags":["eForceQuit"]}]
1503397488821   webdriver::server   DEBUG   -> GET /shutdown

因此,在调用 quit() 方法时,Web Browser会话和WebDriver实例将完全被杀死。因此,您不必包含任何其他额外的步骤,这些步骤本来就是一种开销。

您可以在讨论中找到有关清除 WebDriver 实例的各种方法PhantomJS web driver stays in memory

您还可以找到一些可用于清除的替代方法  讨论中的WebDriver流程Selenium : How to stop geckodriver process impacting PC memory, without calling driver.quit()?