/// <summary> /// Setup our test /// </summary> /// <param name="webDriverInitStrategy">the webDriver init strategy</param> /// <param name="browser">the template to test on</param> /// <param name="baseURL">the baseURL of our testsystem</param> /// <param name="languageCode">the languageCode to test on</param> /// <param name="timeOut">A optional timeout</param> void ITestable.SetupTest(WebDriverInitStrategy webDriverInitStrategy, Browser browser, string baseURL, string languageCode, int timeOut) { RunBeforeTestStartMethods(); TestStatusManager.IsCanceled = false; /*if (timeOut != 0) * Settings.Default.TestTimeout = timeOut;*/ IWebDriverFactory webDriverFactory; switch (webDriverInitStrategy) { case WebDriverInitStrategy.SeleniumGrid: webDriverFactory = new RemoteWebDriverFactory(); break; case WebDriverInitStrategy.SeleniumLocal: webDriverFactory = new LocalWebDriverFactory(); break; default: webDriverFactory = new LocalWebDriverFactory(); break; } _webDriver = webDriverFactory.GetWebDriver(browser, languageCode); SetupTest(_webDriver, baseURL, languageCode); }
/// <summary> /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. /// </summary> /// <param name="disposing"></param> private void Dispose(bool disposing) { if (disposing) { LocalWebDriverFactory?.Dispose(); RemoteWebDriverFactory?.Dispose(); } }
public void RemoteWebDriverFactoryWorks( PlatformType platformType, Browser browser, BrowserVisibility browserVisibility = BrowserVisibility.OnScreen) { Driver = RemoteWebDriverFactory .GetWebDriver(browser, platformType, WindowSize.Fhd, browserVisibility == BrowserVisibility.Headless); Assertions.AssertThatPageCanBeLoaded(Driver); Driver.IsRunningHeadless().Should() .Be(browserVisibility == BrowserVisibility.Headless, $"{browserVisibility.ToString()} was requested"); }
/// <summary> /// Return a WebDriver instance of the given configuration. /// </summary> /// <param name="configuration"></param> /// <returns></returns> public IWebDriver GetWebDriver(IWebDriverConfiguration configuration) { Logger.Info($"WebDriver requested using {configuration}"); IWebDriver driver = configuration.IsLocal ? LocalWebDriverFactory.GetWebDriver(configuration) : RemoteWebDriverFactory.GetWebDriver(configuration); if (IsDebugEnabled) { IJavaScriptExecutor js = (IJavaScriptExecutor)driver; Logger.Debug($"{driver} successfully launched. Agent String: {js.ExecuteScript("return navigator.userAgent;")}"); } return(driver); }
private static IDriverFactory _GetDriverFactory(DriverSettings driverSettings) { IDriverFactory driverFactory = null; if (driverSettings.HubType.EnumValue.Equals(HubType.None)) { switch (driverSettings.Browser.EnumValue) { case Browser.Chrome: { driverFactory = new ChromeDriverFactory(); break; } case Browser.Firefox: { driverFactory = new FirefoxDriverFactory(); break; } //TODO: handle all cases } } switch (driverSettings.Platform.EnumValue) { case Platform.Windows: case Platform.Linux: case Platform.Mac: { driverFactory = new RemoteWebDriverFactory(); break; } case Platform.iOS: { driverFactory = new IOSDriverFactory(); break; } case Platform.Android: { driverFactory = new AndroidDriverFactory(); break; } } return(driverFactory); }
/// <summary> /// Return a WebDriver instance of the given configuration. /// </summary> /// <param name="browser"></param> /// <param name="windowSize"></param> /// <param name="isLocal"></param> /// <param name="platformType"></param> /// <param name="headless"></param> /// <param name="windowCustomSize"></param> /// <returns></returns> public IWebDriver GetWebDriver(Browser browser, WindowSize windowSize = WindowSize.Hd, bool isLocal = true, PlatformType platformType = PlatformType.Any, bool headless = false, Size windowCustomSize = new Size()) { string configurationDescription = new StringBuilder() .Append($"Browser: {browser.ToString()}") .Append(headless ? "headless" : "on screen") .Append($"WindowSize enum: {windowSize.ToString()}, ") .Append($"{((windowSize == WindowSize.Custom || windowSize == WindowSize.Defined) ? $"Size: {windowCustomSize.Width} x {windowCustomSize.Height}, " : string.Empty)}") .Append(isLocal ? "running locally)" : $"running remotely on {RemoteWebDriverFactory.GridUri} on platform: {platformType}.)") .ToString(); Logger.Info($"WebDriver requested using parameters: {configurationDescription}"); IWebDriver driver = isLocal ? LocalWebDriverFactory.GetWebDriver(browser, windowSize, headless, windowCustomSize) : RemoteWebDriverFactory.GetWebDriver(browser, platformType, windowSize, headless, windowCustomSize); if (IsDebugEnabled) { IJavaScriptExecutor js = (IJavaScriptExecutor)driver; Logger.Debug($"{driver} successfully launched. Agent String: {js.ExecuteScript("return navigator.userAgent;")}"); } return(driver); }