public static IWebDriver GetDriver(StartDriverCmdletBase cmdlet, Drivers driverType) { try { // enumerate driver processes before creating new one SeHelper.CollectDriverProcesses(driverType); switch (driverType) { // case Drivers.Chrome: // //SeHelper.CollectDriverProcesses(Drivers.Chrome); //// ChromeOptions optCh = //// new ChromeOptions(); // // ChromeOptions optCh = //OptionsFactory.GetChromeOptions(); // // resolve ChromeOptions // WebDriverFactory.Container.Resolve<ChromeOptions>(); // // // 20121003 // //driver = new ChromeDriver(optCh); // // // 20121003 // OpenQA.Selenium.Chrome.ChromeDriverService chromeService = OpenQA.Selenium.Chrome.ChromeDriverService.CreateDefaultService(); // //cmdlet.WriteObject(cmdlet, chromeService.ServiceUrl); // //cmdlet.WriteObject(cmdlet, chromeService); // //chromeService.Start(); // // driver = new ChromeDriver(chromeService, optCh, TimeSpan.FromSeconds(60)); // // SeHelper.GetDriverProcess(Drivers.Chrome, driver.Title + SeHelper.DriverTitleComplementChrome); // break; case Drivers.Firefox: //SeHelper.CollectDriverProcesses(Drivers.Firefox); // 20121003 //FirefoxProfile ffProfile = new FirefoxProfile(); //ffProfile.AcceptUntrustedCertificates = true; //ffProfile.EnableNativeEvents = true; ////driver = new FirefoxDriver(); //driver = new FirefoxDriver(ffProfile); // 20121003 // ICapabilities ffCapabilities = // new OpenQA.Selenium.Support.Events.WebElementEventArgs // ICapabilities ffCapabilities = // new DesiredCapabilities(); var ffCapabilities = CapabilitiesFactory.GetCapabilities(); _driver = new FirefoxDriver(ffCapabilities); SeHelper.GetDriverProcess(Drivers.Firefox, _driver.Title + SeHelper.DriverTitleComplementFirefox.Substring(3)); _driver.Manage().Timeouts().SetScriptTimeout(TimeSpan.FromSeconds(60)); break; // case Drivers.InternetExplorer: // //OpenQA.Selenium.IE.InternetExplorerOptions optIE = // // new InternetExplorerOptions(); // //optIE. //// InternetExplorerOptions optIE = //// new InternetExplorerOptions(); // // //InternetExplorerOptions optIE = OptionsFactory.GetIEOptions(); // InternetExplorerOptions optIE = // WebDriverFactory.Container.Resolve<InternetExplorerOptions>(); // // optIE.EnableNativeEvents = true; // optIE.IgnoreZoomLevel = true; // optIE.IntroduceInstabilityByIgnoringProtectedModeSettings = true; // // // //SeHelper.CollectDriverProcesses(Drivers.InternetExplorer); // // //string ieSubFolder = string.Empty; // // 20120901 // //System.Reflection.Assembly[] assms = // // System.AppDomain.CurrentDomain.GetAssemblies(); // //foreach (System.Reflection.Assembly assm in assms) { // // if (assm.FullName.Contains("SePSX")) { // // ieSubFolder = // // assm.Location.Substring(0, assm.Location.LastIndexOf('\\')); // // break; // // } // //} // // string ieSubFolder = System.IO.Path.GetDirectoryName(cmdlet.GetType().Assembly.Location); // // if (cmdlet.Architecture == InternetExplorer.x86) { // ieSubFolder += "\\32\\"; // } // if (cmdlet.Architecture == InternetExplorer.x64) { // ieSubFolder += "\\64\\"; // } // // // //driver = new InternetExplorerDriver( // // // 20121003 // OpenQA.Selenium.DriverService ieService = OpenQA.Selenium.IE.InternetExplorerDriverService.CreateDefaultService(ieSubFolder); // // ieService.Start(); // // // driver = new InternetExplorerDriver(ieService, optIE, TimeSpan.FromSeconds(10)); // // // 20121003 // //driver = new InternetExplorerDriver(ieSubFolder, optIE); // // SeHelper.GetDriverProcess(Drivers.InternetExplorer, driver.Title + SeHelper.DriverTitleComplementInternetExplorer); // break; case Drivers.Safari: //SeHelper.CollectDriverProcesses(Drivers.Safari); //driver = new SafariDriver(); //driver = WebDriverFactory.GetNativeDriver(driverType); _driver = GetNativeDriver(driverType); SeHelper.GetDriverProcess(Drivers.Safari, _driver.Title + SeHelper.DriverTitleComplementSafari); break; case Drivers.Html: _driver = new RemoteWebDriver(DesiredCapabilities.HtmlUnit()); break; default: throw new Exception("Invalid value for Drivers"); } // // //return (new FirefoxDriver()); return(_driver); // // } catch (Exception ee) { Console.WriteLine(ee.Message); return(null); } }
public static IWebDriver GetDriverServer(StartSeWebDriverCommand cmdlet) { IWebDriver driver = null; var driverDirectoryPath = string.Empty; ChromeOptions chromeOptions = null; InternetExplorerOptions ieOptions = null; var commandTimeout = TimeSpan.FromSeconds(60.0); DriverService service = null; var listOfParameters = new System.Collections.Generic.List <Autofac.Core.Parameter>(); // determine the type of dirver server var driverServerType = DriverServers.None; var ieArchitecture = InternetExplorer.X86; // Drivers driverType = Drivers.HTML; // if (true == cmdlet.CH) { // cmdlet.WriteVerbose(cmdlet, "required ChromeDriver"); // driverServerType = DriverServers.chrome; // driverType = Drivers.Chrome; // } // if (true == cmdlet.IE) { // cmdlet.WriteVerbose(cmdlet, "required InternetExplorerDriver"); // driverServerType = DriverServers.ie; // ieArchitecture = cmdlet.Architecture; // driverType = Drivers.InternetExplorer; // } switch (cmdlet.DriverType) { case Drivers.Chrome: cmdlet.WriteVerbose(cmdlet, "required ChromeDriver"); driverServerType = DriverServers.Chrome; //driverType = Drivers.Chrome; break; case Drivers.Firefox: break; case Drivers.InternetExplorer: cmdlet.WriteVerbose(cmdlet, "required InternetExplorerDriver"); driverServerType = DriverServers.Ie; ieArchitecture = cmdlet.Architecture; //driverType = Drivers.InternetExplorer; break; case Drivers.Safari: break; case Drivers.Html: break; default: throw new Exception("Invalid value for Drivers"); } // collect processes before running the server cmdlet.WriteVerbose(cmdlet, "collect processes"); SeHelper.CollectDriverProcesses(cmdlet.DriverType); // driverDirectoryPath if (string.IsNullOrEmpty(cmdlet.DriverDirectoryPath)) { cmdlet.WriteVerbose(cmdlet, "using the default driver directory path"); driverDirectoryPath = System.IO.Path.GetDirectoryName(cmdlet.GetType().Assembly.Location); if (DriverServers.Ie == driverServerType && InternetExplorer.X86 == ieArchitecture) { driverDirectoryPath += "\\32\\"; } if (DriverServers.Ie == driverServerType && InternetExplorer.X64 == ieArchitecture) { driverDirectoryPath += "\\64\\"; } } else { cmdlet.WriteVerbose(cmdlet, "using the path from the cmdlet parameter"); driverDirectoryPath = cmdlet.DriverDirectoryPath; } cmdlet.WriteVerbose(cmdlet, driverDirectoryPath); // ChromeOptions, InternetExplorerOptions // try { if (DriverServers.Chrome == driverServerType) { if (null == cmdlet.ChromeOptions) { cmdlet.WriteVerbose(cmdlet, "using the default ChromeOptions"); chromeOptions = new ChromeOptions(); } else { cmdlet.WriteVerbose(cmdlet, "using the supplied ChromeOptions"); chromeOptions = cmdlet.ChromeOptions; } } if (DriverServers.Ie == driverServerType) { if (null == cmdlet.IeOptions) { cmdlet.WriteVerbose(cmdlet, "using the default InternetExplorerOptions"); ieOptions = new InternetExplorerOptions(); ieOptions.IgnoreZoomLevel = true; } else { cmdlet.WriteVerbose(cmdlet, "using the supplied InternetExplorerOptions"); ieOptions = cmdlet.IeOptions; } } // commandTimeout if (null != cmdlet.Timeout && 0 != cmdlet.Timeout && Preferences.Timeout != cmdlet.Timeout) // ?? { cmdlet.WriteVerbose(cmdlet, "setting the commandTimeout"); commandTimeout = TimeSpan.FromMilliseconds(cmdlet.Timeout); cmdlet.WriteVerbose(cmdlet, "commandTimeout = " + commandTimeout.ToString()); } // creating the driver server service cmdlet.WriteVerbose(cmdlet, "creating a DriverService"); // try { //Autofac.NamedParameter driverDirectoryParameter = // new NamedParameter("driverPath", driverDirectoryPath); switch (driverServerType) { // case DriverServers.none: // // break; case DriverServers.Chrome: //Console.WriteLine("driver server 00012c"); cmdlet.WriteVerbose(cmdlet, "creating a ChromeDriverService"); //Console.WriteLine("creating chrome driver service"); service = ChromeDriverService.CreateDefaultService(driverDirectoryPath); //Console.WriteLine("the chrome driver service has been created"); break; case DriverServers.Ie: cmdlet.WriteVerbose(cmdlet, "creating a InternetExplorerDriverService"); service = InternetExplorerDriverService.CreateDefaultService(driverDirectoryPath); break; default: throw new Exception("Invalid value for DriverServers"); } switch (driverServerType) { // case DriverServers.none: // // break; case DriverServers.Chrome: listOfParameters.Add(new NamedParameter("service", service)); listOfParameters.Add(new NamedParameter("options", chromeOptions)); listOfParameters.Add(new NamedParameter("commandTimeout", commandTimeout)); cmdlet.WriteVerbose(cmdlet, "creating the ChromeDriver"); try { //ChromeDriverService service1 = ChromeDriverService.CreateDefaultService(); //DriverService service2 = ChromeDriverService.CreateDefaultService(); //Console.WriteLine("driverServerType.ToString() = " + driverServerType.ToString()); //Console.WriteLine(listOfParameters.Count.ToString()); //Console.WriteLine("creating driver"); driver = Container.ResolveNamed <IWebDriver>( driverServerType.ToString(), listOfParameters); //Console.WriteLine("driver has been created"); } catch (Exception eChDrv) { Console.WriteLine(eChDrv.Message); Console.WriteLine(eChDrv.StackTrace); } // // ChromeDriver drv = new ChromeDriver(); // ChromeDriver drv = new ChromeDriver("opt"); // ChromeDriver drv = new ChromeDriver("dir"); // ChromeDriver drv = new ChromeDriver("dir", "opt"); // ChromeDriver drv = new ChromeDriver("dir", "opt", "timeout"); // ChromeDriver drv = new ChromeDriver("svc", "opt"); // ChromeDriver drv = new ChromeDriver("svc", "opt", "timeout"); // break; case DriverServers.Ie: listOfParameters.Add(new NamedParameter("service", service)); listOfParameters.Add(new NamedParameter("options", ieOptions)); listOfParameters.Add(new NamedParameter("commandTimeout", commandTimeout)); cmdlet.WriteVerbose(cmdlet, "creating the InternetExplorerDriver"); driver = Container.ResolveNamed <IWebDriver>( driverServerType.ToString(), listOfParameters.ToArray()); break; default: throw new Exception("Invalid value for DriverServers"); } // getting the process of the driver server running cmdlet.WriteVerbose(cmdlet, "findng out the process of the driver created"); //switch (driverType) { switch (cmdlet.DriverType) { case Drivers.Chrome: //SeHelper.GetDriverProcess(Drivers.Chrome, driver.Title + SeHelper.DriverTitleComplementChrome); //SeHelper.GetDriverProcess(driverType, driver.Title + SeHelper.DriverTitleComplementChrome); SeHelper.GetDriverProcess(cmdlet.DriverType, driver.Title + SeHelper.DriverTitleComplementChrome); break; // case Drivers.Firefox: // // break; case Drivers.InternetExplorer: //SeHelper.GetDriverProcess(Drivers.InternetExplorer, driver.Title + SeHelper.DriverTitleComplementInternetExplorer); //SeHelper.GetDriverProcess(driverType, driver.Title + SeHelper.DriverTitleComplementInternetExplorer); SeHelper.GetDriverProcess(cmdlet.DriverType, driver.Title + SeHelper.DriverTitleComplementInternetExplorer); break; // case Drivers.Safari: // // break; // case Drivers.HTML: // // break; // default: // throw new Exception("Invalid value for Drivers"); } // return driver return(driver); }