title: Is Selenium WebDriver thread safe?
body: <p>More specifically, is it safe to perform multiple operations on a single WebDriver/WebElement simultaneously?  i.e. something like this</p>
  
  <pre><code>WebDriver driver; //driver initialized somehow
  final WebElement elem = driver.findElement(By.cssSelector("#elementID"));
  
  //simplified for example, but in real code I'd be storing the results of these calls
  new Thread() {
      @Override
      public void run() {
          elem.isDisplayed();
      }
  }.run();
  new Thread() {
      @Override
      public void run() {
          elem.isEnabled();
      }
  }.run();
  </code></pre>
  
  <p>I've tried this myself without problems when interacting locally, but run into intermittent problems when doing the same thing against a remote selenium grid.  </p>
  
  <p>I'm not sure if the problems I'm experiencing are coming from Selenium itself, or if Selenium is fine and it's a limitation of the hosted grid provider I'm using.  <a href="https://stackoverflow.com/questions/26972131/is-selenium-thread-safe-for-scraping-with-python">Is selenium thread safe for scraping with Python?</a> mentions that selenium might not be thread safe, but I couldn't find any confirmation.</p>