title: Parallel Browser testing using Specflow RemoteWebDriver
body: <p>I'm trying to use RemoteWebDriver to fetch the options dynamically, so that based on the feature user input (chrome, firefox or edge), it tests in that browser. But I am facing one issue in RemoteWebDriver, it throws me this error</p>
  <blockquote>
  <p>OpenQA.Selenium.WebDriverException : The HTTP request to the remote
  WebDriver server for URL <a href="https://www.xxx.xxx/session" rel="nofollow noreferrer">https://www.xxx.xxx/session</a> timed out
  after 60 seconds.
  ----&gt; System.Threading.Tasks.TaskCanceledException : The operation was canceled.
  ----&gt; System.IO.IOException : Unable to read data from the transport connection: The I/O operation has been aborted because of
  either a thread exit or an application request..
  ----&gt; System.Net.Sockets.SocketException : The I/O operation has been aborted because of either a thread exit or an application
  request.
  TearDown : System.Collections.Generic.KeyNotFoundException : The given key 'WebDriver' was not present in the dictionary.</p>
  </blockquote>
  <p>Here is code</p>
  <pre><code>    public IWebDriver Setup(string browserName)
      {
          dynamic capability = GetBrowserOptions(browserName);
          driver = new RemoteWebDriver(new Uri(&quot;https://www.xxx.xxx/&quot;), capability.ToCapabilities()); // waits here for 60 seconds before failing
          _scenarioContext.Set(driver, &quot;WebDriver&quot;);
          driver.Manage().Window.Maximize();
          return driver;
      }
  
      private dynamic GetBrowserOptions(string browserName)
      {
          if (browserName.ToLower() == &quot;chrome&quot;)
              return new ChromeOptions();
          if (browserName.ToLower() == &quot;firefox&quot;)
              return new FirefoxOptions();
          if (browserName.ToLower() == &quot;microsoftedge&quot;)
              return new EdgeOptions();
          if (browserName.ToLower() == &quot;safari&quot;)
              return new SafariOptions();
  
          return new ChromeOptions();
      }
  </code></pre>
  <p>Any help will be appreciated.</p>