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