public void SetTimeoutsGetWaitDriver() { IWebDriver driver = null; IWebDriver newDriver = null; try { driver = WebDriverFactory.GetDefaultBrowser(); newDriver = WebDriverFactory.GetDefaultBrowser(); SeleniumUtilities.SetTimeouts(driver); WebDriverWait wait = SeleniumConfig.GetWaitDriver(newDriver); Assert.AreEqual(wait.Timeout.TotalMilliseconds.ToString(), Config.GetValueForSection("SeleniumMaqs", "BrowserTimeout", "0")); } finally { try { driver?.KillDriver(); } finally { newDriver?.KillDriver(); } } }
protected override IWebDriver GetBrowser() { if (string.Equals(Config.GetValueForSection(ConfigSection.SeleniumMaqs, "RunOnSauceLabs"), "YES", StringComparison.OrdinalIgnoreCase)) { var name = this.TestContext.FullyQualifiedTestClassName + "." + this.TestContext.TestName; var options = SeleniumConfig.GetRemoteCapabilitiesAsObjects(); var sauceOptions = options["sauce:options"] as Dictionary <string, object>; sauceOptions.Add("screenResolution", "1280x1024"); sauceOptions.Add("build", string.IsNullOrEmpty(Environment.GetEnvironmentVariable("SAUCE_BUILD_NAME")) ? BuildDate : Environment.GetEnvironmentVariable("SAUCE_BUILD_NAME")); sauceOptions.Add("name", name); var browserOptions = new ChromeOptions { UseSpecCompliantProtocol = true, PlatformName = "Windows 10", BrowserVersion = "latest" }; browserOptions.SetDriverOptions(options); var remoteCapabilities = browserOptions.ToCapabilities(); return(new RemoteWebDriver(new Uri(Config.GetValueForSection(ConfigSection.SeleniumMaqs, "HubUrl")), remoteCapabilities, SeleniumConfig.GetCommandTimeout())); } return(base.GetBrowser()); }
public void CommandTimeoutNotANumberException() { string commandTimeout = Config.GetValueForSection(ConfigSection.SeleniumMaqs, "SeleniumCommandTimeout"); Config.AddTestSettingValues( new Dictionary <string, string> { { "SeleniumCommandTimeout", "TestString" } }, "SeleniumMaqs"); try { var commandTimeoutFromMethod = SeleniumConfig.GetCommandTimeout(); Assert.Fail($"We should throw an argument exception before we get to this assert. Value was {commandTimeoutFromMethod}"); } finally { Config.AddTestSettingValues( new Dictionary <string, string> { { "SeleniumCommandTimeout", commandTimeout } }, "SeleniumMaqs"); } }
public PageObject(SeleniumConfig seleniumConfig, IWebDriver driver, ILogging logging, SibApiConfig sibApiConfig) { _seleniumConfig = seleniumConfig; _driver = driver; _logging = logging; _sibApiConfig = sibApiConfig; }
public void SetTimeoutsGetWaitDriver() { SeleniumConfig.SetTimeouts(SeleniumConfig.Browser()); WebDriverWait wait = SeleniumConfig.GetWaitDriver(SeleniumConfig.Browser()); Assert.AreEqual(wait.Timeout.TotalMilliseconds.ToString(), Config.GetValue("Timeout", "0")); }
public void BrowserTypeError() { Assert.ThrowsException <ArgumentException>(() => SeleniumConfig.GetBrowserType("PHANTOMJS")); Assert.ThrowsException <ArgumentException>(() => SeleniumConfig.GetBrowserType("PHANTOM JS")); Assert.ThrowsException <ArgumentException>(() => SeleniumConfig.GetBrowserType("PHANTOM")); Assert.ThrowsException <ArgumentException>(() => SeleniumConfig.GetBrowserType("OTHER")); }
public void RemoteBrowserTypeError() { Assert.ThrowsException <ArgumentException>(() => SeleniumConfig.GetRemoteBrowserType("remote")); Assert.ThrowsException <ArgumentException>(() => SeleniumConfig.GetRemoteBrowserType("HEADLESSCHROME")); Assert.ThrowsException <ArgumentException>(() => SeleniumConfig.GetRemoteBrowserType("PHANTOM")); Assert.ThrowsException <ArgumentException>(() => SeleniumConfig.GetRemoteBrowserType("OTHER")); }
public void LazyElementExistsNow() { LazyElement slowLoad = new LazyElement(this.TestObject, By.CssSelector("#AsyncContent[style*='block']")); WebDriver.Navigate().GoToUrl(SeleniumConfig.GetWebSiteBase() + "Automation/AsyncPage"); Assert.IsFalse(slowLoad.ExistsNow, "Element should not exist yet"); }
/// <summary> /// Reset the WebDriverWait to the default /// </summary> /// <param name="searchContext">Web driver or element</param> /// <example> /// <code source = "../SeleniumUnitTesting/SeleniumUnitTest.cs" region="ResetWaitDriver" lang="C#" /> /// </example> public static void ResetWaitDriver(this ISearchContext searchContext) { // Make sure we have the base driver and not the event firing wrapper IWebDriver unwrappedDriver = GetLowLevelDriver(searchContext); WebDriverWait waiter = SeleniumConfig.GetWaitDriver(unwrappedDriver); waitCollection.AddOrUpdate(unwrappedDriver, waiter, (oldkey, oldvalue) => waiter); }
public void LazyElementSubmit() { WebDriver.Navigate().GoToUrl(SeleniumConfig.GetWebSiteBase() + "Employees"); WebDriver.Wait().ForClickableElement(By.CssSelector("A[href^='/Employees/Edit/']")).Click(); WebDriver.Wait().ForPageLoad(); this.SubmitButton.Submit(); Assert.IsTrue(WebDriver.Wait().UntilAbsentElement(By.CssSelector("#[type='submit']")), "Submit did not go away"); }
public void GetRemotePlatform() { #region RemotePlatform string platform = SeleniumConfig.GetRemotePlatform(); #endregion RemotePlatform Assert.AreEqual(platform, string.Empty); }
public void GetWebsiteBase() { #region GetWebsiteBase string website = SeleniumConfig.GetWebSiteBase(); #endregion GetWebsiteBase Assert.IsTrue(website.Equals("http://magenicautomation.azurewebsites.net/", StringComparison.InvariantCultureIgnoreCase)); }
public void GetDriverHintPath() { #region GetDriverHintPath string path = SeleniumConfig.GetDriverHintPath(); #endregion GetDriverHintPath Assert.AreEqual(path, Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)); }
public void GetRemoteBrowserName() { #region GetRemoteName string browser = SeleniumConfig.GetRemoteBrowserName(); #endregion GetRemoteName Assert.AreEqual("Chrome", browser); }
public void GetCommandTimeout() { #region GetCommandTimeout TimeSpan initTimeout = SeleniumConfig.GetCommandTimeout(); #endregion GetCommandTimeout Assert.AreEqual(TimeSpan.FromSeconds(61).Ticks, initTimeout.Ticks); }
public void GetBrowserName() { #region GetBrowserName string driverName = SeleniumConfig.GetBrowserName(); #endregion GetBrowserName Assert.IsTrue(driverName.Equals("HeadlessChrome", StringComparison.InvariantCultureIgnoreCase)); }
public void GetRemoteBrowserVersion() { #region RemoteVersion string version = SeleniumConfig.GetRemoteBrowserVersion(); #endregion RemoteVersion Assert.AreEqual(version, string.Empty); }
public void LazyElementFindElementsRespectAction() { IWebElement firstElement = this.DivRoot.FindElements(this.DisabledItem.By)[0]; this.WebDriver.Navigate().GoToUrl(SeleniumConfig.GetWebSiteBase()); this.WebDriver.Navigate().GoToUrl(SeleniumConfig.GetWebSiteBase() + "Automation"); this.WebDriver.SetWaitDriver(new OpenQA.Selenium.Support.UI.WebDriverWait(this.WebDriver, TimeSpan.FromSeconds(1))); firstElement.Click(); }
public void RemoteBrowserTypeMatch() { Assert.AreEqual(RemoteBrowserType.IE, SeleniumConfig.GetRemoteBrowserType("INTERNET EXPLORER")); Assert.AreEqual(RemoteBrowserType.IE, SeleniumConfig.GetRemoteBrowserType("INTERNETExPLOREr")); Assert.AreEqual(RemoteBrowserType.IE, SeleniumConfig.GetRemoteBrowserType("ie")); Assert.AreEqual(RemoteBrowserType.Firefox, SeleniumConfig.GetRemoteBrowserType("Firefox")); Assert.AreEqual(RemoteBrowserType.Chrome, SeleniumConfig.GetRemoteBrowserType("chrome")); Assert.AreEqual(RemoteBrowserType.Safari, SeleniumConfig.GetRemoteBrowserType("SAFARI")); Assert.AreEqual(RemoteBrowserType.Edge, SeleniumConfig.GetRemoteBrowserType("edge")); }
public void LazyElementFindElementsStackedWithStale() { LazyElement lazyRoot = new LazyElement(this.TestObject, By.CssSelector("#ItemsToAutomate")); IWebElement secondTable = lazyRoot.FindElements(By.CssSelector("TABLE"))[1]; IWebElement lastTableHeader = ((LazyElement)secondTable).FindElements(By.CssSelector("THEAD TH"))[4]; this.WebDriver.Navigate().GoToUrl(SeleniumConfig.GetWebSiteBase()); this.WebDriver.Navigate().GoToUrl(SeleniumConfig.GetWebSiteBase() + "Automation"); Assert.AreEqual("Color", lastTableHeader.Text); }
public void GetWaitDriver() { #region WaitDriver WebDriverWait wait = SeleniumConfig.GetWaitDriver(SeleniumConfig.Browser()); #endregion WaitDriver Assert.AreEqual(wait.Timeout.Seconds, 10); Assert.AreEqual(wait.PollingInterval.Seconds, 1); }
public void GetWaitDriverResetWaitDriver() { WebDriverWait defaultWaitDriver = SeleniumConfig.GetWaitDriver(this.WebDriver); // default waitdriver this.WebDriver.ResetWaitDriver(); WebDriverWait resetWaitDriver = this.WebDriver.GetWaitDriver(); // webdrivers default webdriver Assert.AreEqual(defaultWaitDriver.Timeout, resetWaitDriver.Timeout); Assert.AreEqual(defaultWaitDriver.Message, resetWaitDriver.Message); Assert.AreEqual(defaultWaitDriver.PollingInterval, resetWaitDriver.PollingInterval); }
/// <summary> /// Override the web driver we user for these tests /// </summary> /// <returns>The web driver we want to use - Web driver override</returns> protected override IWebDriver GetBrowser() { var firefoxOptions = WebDriverFactory.GetDefaultFirefoxOptions(); firefoxOptions.AddArgument("--headless"); IWebDriver driver = WebDriverFactory.GetFirefoxDriver(SeleniumConfig.GetCommandTimeout(), firefoxOptions); driver.Manage().Window.Size = new Size(701, 199); return(driver); }
public void TryScreenshotImageFormat() { WebDriver.Navigate().GoToUrl(TestSiteUrl); WebDriver.Wait().ForPageLoad(); SeleniumUtilities.CaptureScreenshot(this.WebDriver, this.TestObject); string filePath = Path.ChangeExtension(((FileLogger)this.Log).FilePath, SeleniumConfig.GetImageFormat()); Assert.IsTrue(File.Exists(filePath), "Fail to find screenshot"); Assert.AreEqual(Path.GetExtension(filePath), "." + SeleniumConfig.GetImageFormat(), "The screenshot format was not in correct Format"); File.Delete(filePath); }
public void BrowserTypeMatch() { Assert.AreEqual(BrowserType.IE, SeleniumConfig.GetBrowserType("INTERNET EXPLORER")); Assert.AreEqual(BrowserType.IE, SeleniumConfig.GetBrowserType("INTERNETExPLOREr")); Assert.AreEqual(BrowserType.IE, SeleniumConfig.GetBrowserType("ie")); Assert.AreEqual(BrowserType.Firefox, SeleniumConfig.GetBrowserType("Firefox")); Assert.AreEqual(BrowserType.Chrome, SeleniumConfig.GetBrowserType("chrome")); Assert.AreEqual(BrowserType.HeadlessChrome, SeleniumConfig.GetBrowserType("HEADLESSCHROME")); Assert.AreEqual(BrowserType.Edge, SeleniumConfig.GetBrowserType("eDGE")); Assert.AreEqual(BrowserType.Remote, SeleniumConfig.GetBrowserType("remote")); }
public void GetBrowserWithString() { #region GetBrowserWithString IWebDriver driver = SeleniumConfig.Browser("phantomjs"); #endregion GetBrowserWithString Assert.IsNotNull(driver); driver.Close(); driver.Dispose(); }
public void GetBrowser() { #region GetBrowser IWebDriver driver = SeleniumConfig.Browser(); #endregion GetBrowser Assert.IsNotNull(driver); driver.Close(); driver.Dispose(); }
public void SeparateInteractions() { SeleniumDriverManager newDriver = new SeleniumDriverManager(() => WebDriverFactory.GetBrowserWithDefaultConfiguration(BrowserType.HeadlessChrome), this.TestObject); newDriver.GetWebDriver().Navigate().GoToUrl(SeleniumConfig.GetWebSiteBase()); this.ManagerStore.Add("test", newDriver); this.TestObject.WebDriver.Navigate().GoToUrl(SeleniumConfig.GetWebSiteBase() + "/Automation"); Assert.AreNotEqual(this.TestObject.WebDriver.Url, this.ManagerStore.GetManager <SeleniumDriverManager>("test").GetWebDriver().Url); }
public void WebDriverUsesProxy() { DriverOptions options = WebDriverFactory.GetDefaultHeadlessChromeOptions(); options.SetProxySettings(Config.GetValueForSection(ConfigSection.SeleniumMaqs, "ProxyAddress")); this.WebDriver = WebDriverFactory.GetChromeDriver(TimeSpan.FromMilliseconds(61000), (ChromeOptions)options); string url = Path.Combine(SeleniumConfig.GetWebSiteBase().Replace("https://", "http://"), "Employees"); this.WebDriver.Navigate().GoToUrl(url); bool proxyUsed = RequestsHistory.Values.Any(r => r.RequestUri.ToString().Contains("magenicautomation.azurewebsites.net/Employees")); Assert.IsTrue(proxyUsed, "Failed to assert the proxy was used by the web driver."); }
public void GetWaitDriver() { IWebDriver driver = WebDriverFactory.GetDefaultBrowser(); try { WebDriverWait wait = SeleniumConfig.GetWaitDriver(driver); Assert.AreEqual(20, wait.Timeout.Seconds); Assert.AreEqual(1, wait.PollingInterval.Seconds); } finally { driver?.KillDriver(); } }