webdriver.Dispose()、.Close()和.Quit()之间的区别

webdriver.Dispose()、.Close()和.Quit()之间的区别

这是一个很好的问题,我看到人们在不应该使用Close()时使用了Close(),我查看了Selenium客户机的源代码& WebDriver C#绑定,并发现了以下内容。

webDriver.Close() -关闭驱动程序具有焦点的浏览器窗口webDriver.Quit() -调用Dispose()webDriver.Dispose()关闭所有浏览器窗口并安全结束会话。下面的代码将释放驱动程序对象,结束会话并关闭在测试期间打开的所有浏览器,测试是否失败或通过。

代码语言:javascript运行复制public IWebDriver Driver;

[SetUp]

public void SetupTest()

{

Driver = WebDriverFactory.GetDriver();

}

[TearDown]

public void TearDown()

{

if (Driver != null)

Driver.Quit();

}总之,请确保在退出程序之前调用of ()或Dispose(),并且除非您确定要做什么,否则不要使用Close()方法。

Note

当我试图找出一个相关的问题时,我发现了这个问题,为什么我的虚拟机会耗尽硬盘空间。结果是一个异常导致了out ()或Dispose()不被每次运行调用,这导致appData文件夹填充了硬盘驱动器。因此,我们正确地使用了Quit()方法,但代码是不可触及的。确保所有代码路径都将通过使用异常安全模式或实现IDisposable来清理非托管对象。

也是

在RemoteDriver调用的情况下,()或Dispose()也将关闭Selenium上的会话。如果会话未关闭,则该会话的日志文件将保留在内存中。

相关数据