/// <summary>
 /// Construct a default DriverOptionsFactory.
 /// </summary>
 public DefaultDriverOptionsFactory()
 {
     this.DriverOptionsFunctionsDictionary = new Dictionary <Type, Func <DriverOptions> >
     {
         { typeof(ChromeOptions), () => StaticDriverOptionsFactory.GetChromeOptions() },
         { typeof(EdgeOptions), () => StaticDriverOptionsFactory.GetEdgeOptions() },
         { typeof(FirefoxOptions), () => StaticDriverOptionsFactory.GetFirefoxOptions() },
         { typeof(InternetExplorerOptions), () => StaticDriverOptionsFactory.GetInternetExplorerOptions() },
         { typeof(SafariOptions), () => StaticDriverOptionsFactory.GetSafariOptions() }
     };
 }
 /// <summary>
 /// Add the headless flag if available.
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="driverOptions"></param>
 /// <returns></returns>
 protected virtual T AddHeadlessOption <T>(T driverOptions) where T : DriverOptions
 {
     return(StaticDriverOptionsFactory.AddHeadlessOption(driverOptions));
 }
 /// <summary>
 /// Add the platform configuration to a DriverOptions instance.
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="options"></param>
 /// <param name="platformType"></param>
 /// <returns></returns>
 protected virtual T SetPlatform <T>(T options, PlatformType platformType) where T : DriverOptions
 {
     return(StaticDriverOptionsFactory.SetPlatform(options, platformType));
 }