public static SeleniumWrapper CreateWrapper(string webBrowserName, string url, TimeSpan timeout, bool noWait, AbstractLogger scr, string driversDirectory) { IntPtr mainWindowHandle = IntPtr.Zero; BrowserType type = GetBrowserType(webBrowserName); if (type == BrowserType.Edge && wrappers.Where(x => x.BrowserType == BrowserType.Edge).Any()) { throw new ApplicationException("Using multiple Edge instances at once is not supported."); } var driver = CreateNewWebDriver(webBrowserName, type, out mainWindowHandle, driversDirectory); var wrapper = new SeleniumWrapper(driver, mainWindowHandle, type, scr) { Id = wrappers.Count > 0 ? wrappers.Max(x => x.Id) + 1 : 0 }; wrappers.Add(wrapper); CurrentWrapper = wrapper; if (!string.IsNullOrEmpty(url)) { CurrentWrapper.Navigate(url, timeout, noWait); } return(CurrentWrapper); }
public static SeleniumWrapper CreateWrapper(string webBrowserName, string url, TimeSpan timeout, bool noWait, AbstractLogger scr, string driversDirectory, bool silentMode, List <object> chromeSwitches = null, Dictionary <string, bool> chromeProfiles = null, int chromePort = 0, bool chromeAttach = false) { IntPtr mainWindowHandle = IntPtr.Zero; BrowserType type = GetBrowserType(webBrowserName); if (type == BrowserType.Edge && wrappers.Where(x => x.BrowserType == BrowserType.Edge).Any()) { throw new ApplicationException("Using multiple Edge instances at once is not supported."); } IWebDriver driver = CreateNewWebDriver(webBrowserName, type, out mainWindowHandle, driversDirectory, silentMode, chromeSwitches, chromeProfiles, chromePort, chromeAttach); SeleniumWrapper wrapper = new SeleniumWrapper(driver, mainWindowHandle, type, scr) { Id = wrappers.Count > 0 ? wrappers.Max(x => x.Id) + 1 : 0 }; wrappers.Add(wrapper); CurrentWrapper = wrapper; if (!string.IsNullOrEmpty(url)) { CurrentWrapper.Navigate(url, timeout, noWait); } return(CurrentWrapper); }