private static void RegisterBrowserSettings(ILogger logger, string prefix, IServiceCollection services) { var runtimeSettingsUtilities = new RuntimeSettings(logger); var paths = runtimeSettingsUtilities.CalculatePathsOfSettingsFiles(prefix, Path.Combine(Directory.GetCurrentDirectory(), "Runtime"), "BrowserSettings", "common-chrome.json"); var configurationRoot = runtimeSettingsUtilities.BuildConfiguration(prefix, paths); var browserName = configurationRoot.GetSection("browserName")?.Value?.ToUpper(); var browserSettings = configurationRoot.GetSection("browserSettings"); switch (browserName) { case "CHROME": var instance = new ChromeBrowserSettings(); browserSettings.Bind(instance); instance = SubstituteEnvironmentVariables(instance); instance.BrowserName = browserName; instance.Cleanse(); services.AddSingleton(instance); services.AddSingleton <IBrowserProperties>(instance); break; case "EDGE": var edgeInstance = new EdgeBrowserSettings(); browserSettings.Bind(edgeInstance); edgeInstance = SubstituteEnvironmentVariables(edgeInstance); edgeInstance.BrowserName = browserName; edgeInstance.Cleanse(); services.AddSingleton(edgeInstance); services.AddSingleton <IBrowserProperties>(edgeInstance); break; case "FIREFOX": var ffInstance = new FireFoxBrowserSettings(); browserSettings.Bind(ffInstance); ffInstance = SubstituteEnvironmentVariables(ffInstance); ffInstance.BrowserName = browserName; ffInstance.Cleanse(); services.AddSingleton(ffInstance); services.AddSingleton <IBrowserProperties>(ffInstance); break; case "INTERNETEXPLORER": var ieInstance = new InternetExplorerBrowserSettings(); browserSettings.Bind(ieInstance); ieInstance = SubstituteEnvironmentVariables(ieInstance); ieInstance.BrowserName = browserName; ieInstance.Cleanse(); services.AddSingleton(ieInstance); services.AddSingleton <IBrowserProperties>(ieInstance); break; default: throw new ArgumentOutOfRangeException($"The browser called {browserName} is currently not supported. "); } }
private static IWebDriver StartBrowser(RemoteWebDriverSettings remoteDriverSettings, EdgeBrowserSettings settings, IControlSettings controlSettings) { var adapter = new EdgeBrowserSettingsAdapter(); var options = adapter.ToEdgeOptions(settings); if (!remoteDriverSettings.UseRemoteDriver) { var edgeDriver = controlSettings.AttachToExistingSessionIfItExists ? new AttachableEdgeDriver(options) : new EdgeDriver(options); return(edgeDriver); } return(StartRemoteBrowser(remoteDriverSettings, options, controlSettings)); }