这是一个很好的问题,我看到人们在不应该使用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上的会话。如果会话未关闭,则该会话的日志文件将保留在内存中。