public void WindowSizeEnumReturnsSizeWhereValid(WindowSize windowSize, int expectedWidth, int expectedHeight) { using (new AssertionScope()) { windowSize.Size().Width.Should().Be(expectedWidth); windowSize.Size().Height.Should().Be(expectedHeight); } }
/// <summary> /// Generate a new immutable WebDriverConfiguration instance. /// </summary> /// <param name="browser"></param> /// <param name="gridUri"></param> /// <param name="headless"></param> /// <param name="isLocal"></param> /// <param name="platformType"></param> /// <param name="windowSize"></param> /// <param name="windowDefinedSize"></param> public WebDriverConfiguration( Browser browser = Browser.Firefox, Uri gridUri = null, bool headless = false, bool isLocal = true, PlatformType platformType = PlatformType.Any, WindowSize windowSize = WindowSize.Hd, Size windowDefinedSize = new Size()) { Browser = browser; GridUri = gridUri; Headless = headless; IsLocal = isLocal; PlatformType = platformType; WindowSize = ( windowSize == WindowSize.Maximise || windowSize == WindowSize.Maximize || windowSize == WindowSize.Unchanged) ? windowSize : WindowSize.Defined; WindowDefinedSize = (windowSize == WindowSize.Custom || windowSize == WindowSize.Defined) ? windowDefinedSize : windowSize.Size(); description = new StringBuilder() .Append($"{base.ToString()}: (") .Append($" Browser: {Browser.ToString()} ") .Append(Headless ? "headless" : "on screen") .Append($", Size: {WindowDefinedSize.Width} x {WindowDefinedSize.Height}, ") .Append(IsLocal ? "running locally)" : $"running remotely on {GridUri} on platform: {PlatformType}.)") .ToString(); }
/// <summary> /// Set the WebDriver to the requested Browser size. /// </summary> /// <param name="driver"></param> /// <param name="windowSize"></param> /// <param name="windowCustomSize"></param> /// <returns></returns> public IWebDriver SetWindowSize(IWebDriver driver, WindowSize windowSize, Size windowCustomSize = new Size()) { switch (windowSize) { case WindowSize.Unchanged: return(driver); case WindowSize.Maximise: driver.Manage().Window.Maximize(); return(driver); case WindowSize.Maximize: driver.Manage().Window.Maximize(); return(driver); case WindowSize.Defined: if (!((WebDriver)driver).Capabilities.GetCapability("browserName").Equals("Safari")) { driver.Manage().Window.Position = Point.Empty; } driver.Manage().Window.Size = windowCustomSize; return(driver); default: if (!((WebDriver)driver).Capabilities.GetCapability("browserName").Equals("Safari")) { driver.Manage().Window.Position = Point.Empty; } driver.Manage().Window.Size = windowSize.Size(); return(driver); } }
/// <summary> /// Return a formatted, human readable Json string suitable for saving locally in a Config_WebDriver.json file /// </summary> /// <returns></returns> public string GetJsonConfigString() { // Serialising using json.net produces minimal, non readable json: Manually generate a readable, formatted string. StringBuilder jsonBuilder = new StringBuilder(); jsonBuilder.AppendLine("{"); jsonBuilder.AppendLine($" \"Browser\": \"{browser.ToString()}\","); jsonBuilder.AppendLine($" \"IsLocal\": {isLocal.ToString().ToLower()},"); jsonBuilder.AppendLine($" \"PlatformType\": \"{platformType.ToString()}\","); jsonBuilder.AppendLine($" \"Headless\": {headless.ToString().ToLower()},"); if (windowSize == WindowSize.Maximise || windowSize == WindowSize.Maximize || windowSize == WindowSize.Unchanged) { jsonBuilder.AppendLine($" \"WindowSize\": \"{windowSize.ToString()}\","); } else { jsonBuilder.AppendLine($" \"WindowSize\": \"{WindowSize.Defined.ToString()}\","); if (windowSize == WindowSize.Custom || windowSize == WindowSize.Defined) { jsonBuilder.AppendLine($" \"WindowDefinedSize\": {{\"width\":{windowDefinedSize.Width}, \"height\":{windowDefinedSize.Height}}},"); } else { jsonBuilder.AppendLine($" \"WindowDefinedSize\": {{\"width\":{windowSize.Size().Width}, \"height\":{windowSize.Size().Height}}},"); } } jsonBuilder.AppendLine($" \"GridUri\": \"{gridUri}\""); jsonBuilder.AppendLine("}"); return(jsonBuilder.ToString()); }