0

I am instantiating the PhantomJSDriver in C# with this code:

Driver = new PhantomJSDriver();

And cleaning it up with this:

Driver.Dispose();
Driver = null;

Should the process exit or stay in memory? If it is supposed to stay in memory, visible in the Windows 7 task manager, can I kill it programmatically? Should I?

DebanjanB
  • 118,661
  • 30
  • 168
  • 217
Matt W
  • 9,407
  • 17
  • 83
  • 146
  • Possible duplicate of [Difference between webdriver.Dispose(), .Close() and .Quit()](https://stackoverflow.com/questions/15067107/difference-between-webdriver-dispose-close-and-quit) – JeffC Aug 31 '17 at 17:12

1 Answers1

3

Answering straight, Driver.Dispose(); shouldn't be used to clean up the WebDriver instance. For a proper cleanup we must be using Driver.Quit();.

  1. Driver.Dispose();: I think got deprecated.
  2. Driver.Close();: It is used to close the current page or the browser (if it is the only page/tab) which is having the focus.
  3. Driver.Quit();: It is used to call the /shutdown endpoint and subsequently the web driver instance is destroyed completely closing all the pages/tabs/windows.

Hence calling the Driver.Quit() method is the only way to guarantee that sessions are properly terminated.

In this discussion you can find a detailed analysis on Driver.Dispose();, Driver.Close(); and Driver.Quit();

DebanjanB
  • 118,661
  • 30
  • 168
  • 217