/// <summary> /// Gets the web driver. /// </summary> /// <param name="contextManager">The object container.</param> /// <param name="options">The options.</param> /// <returns>The webdrivercontext object.</returns> public static WebDriverContext GetWebDriver(IContextManager contextManager, IWritableOptions <ConfigurationParameters> options) { var objectContainer = contextManager?.TestThreadContext.Get <IObjectContainer>("objectContainer"); WebDriverContext webDriverContext = null; if (objectContainer.IsRegistered <WebDriverContext>()) { webDriverContext = objectContainer.Resolve <WebDriverContext>(); } if (options?.Value.BrowsersConfiguration.Browser == Browser.ChromeAndroid9) { AppiumLocalService = AndroidWebDriver.CreateAppiumLocalService(); AppiumLocalService.Start(); } if (webDriverContext?.WebDriver == null) { if (!objectContainer.IsRegistered <WebDriverContext>()) { objectContainer.RegisterTypeAs <WebDriverContext, WebDriverContext>(); } objectContainer.Resolve <WebDriverContext>().CreateWebDriver(); webDriverContext = objectContainer.Resolve <WebDriverContext>(); } return(webDriverContext); }
/// <summary> /// Gets the webdrivercontext. /// </summary> /// <param name="objectContainer">The configuration parameters object.</param> /// <param name="configurationParameters">The object container object.</param> /// <returns>The webDrvierContext object.</returns> public static WebDriverContext GetWebDriver(IObjectContainer objectContainer, ConfigurationParameters configurationParameters) { if (configurationParameters.BrowsersConfiguration.Browser == Browser.ChromeAndroid9) { AppiumLocalService = AndroidWebDriver.CreateAppiumLocalService(); AppiumLocalService.Start(); } if (configurationParameters.BrowsersConfiguration.ReuseBrowser) { var webDriver = new WebDriverContext(configurationParameters); objectContainer.RegisterInstanceAs <WebDriverContext>(webDriver); return(webDriver); } else { var webDriverContext = new WebDriverContext(configurationParameters); objectContainer.RegisterInstanceAs <WebDriverContext>(webDriverContext); return(webDriverContext); } }
/// <summary> /// create webdriver by properties, driver key = "default" if not set /// </summary> public static void CreateDriver(DriverProperties pros, string key = "default") { DriverManager driverManager = null; switch (pros.GetDriverType()) { case DriverType.Chrome: driverManager = new ChromeBrowser(); break; case DriverType.Firefox: driverManager = new FireFoxBrowser(); break; case DriverType.IE: driverManager = new IEBrowser(); break; case DriverType.IOSApp: driverManager = new IOSAppDriver(); break; case DriverType.IOSWeb: driverManager = new IOSWebDriver(); break; case DriverType.AndroidApp: driverManager = new AndroidAppDriver(); break; case DriverType.AndroidWeb: driverManager = new AndroidWebDriver(); break; case DriverType.Edge: break; case DriverType.Safari: break; default: throw new ArgumentOutOfRangeException(); } if (driverManager != null) { driverManager.SetDriverProperties(key, pros); driverManager.CreateDriver(key); if (_DRIVER.Value == null) { _DRIVER.Value = driverManager; } else { _DRIVER.Value.SetDriverProperties(key, pros); _DRIVER.Value.SetWebDriver(key, driverManager.GetWebDriver(key)); } var driverKey = new Key { Name = key }; _DRIVER_KEY.Value = driverKey; } else { throw new Exception("Cannot create web driver"); } }