title: Multi threaded Selenium WebDriver vs Selenium Grid
body: <p>I am a newbie to Selenium and am using Selenium to navigate to multiple pages of the same website simultaneously while maintaining a session. I can create a controller in the following 2 ways: <br/></p>
  
  <ol>
  <li>The controller initiates <strong>Selenium WebDriver</strong> in a multithreaded environment (1 driver instance per each thread, as WebDriver is not thread-safe. Reference: <a href="https://stackoverflow.com/questions/13057423/selenium-grid-how-to-utilize-webdriver-with-threadsafeseleniumsessionstorage-se">Selenium Grid, how to utilize WebDriver with ThreadSafeSeleniumSessionStorage.session()</a>)<br/></li>
  <li>Controller uses <strong>Selenium Grid</strong></li>
  </ol>
  
  <p>I understand Selenium Grid supports distributed execution by using a hub-node concept; but what are main benefits I would be getting as compared to Option 1.</p>
  
  <p>I see people using Option 1, but facing some issues. Reference: <a href="https://stackoverflow.com/questions/23214254/multiple-webdriver-instances-in-selenium-without-grid">Multiple WebDriver instances in Selenium without Grid?</a></p>
  
  <p>Is it recommended to use Grid over Selenium WebDriver in a multithreaded environment? If so, why?
  Also, would Selenium Grid take responsibility of cleaning any stale browser instances in its nodes (out of the box)?</p>