public void TooMuchWaiting() { LoginPageModel page = new LoginPageModel(this.TestObject); page.OpenLoginPage(); Stopwatch stopwatch = new Stopwatch(); WebDriverWait wait = new WebDriverWait(new SystemClock(), WebDriver, TimeSpan.FromSeconds(4), TimeSpan.FromSeconds(.5)); WebDriver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(3); stopwatch.Start(); try { // Will timeout in 6.5+ seconds wait.Until(x => x.FindElement(By.CssSelector("#missing"))); } catch { // We expect this to throw an exception } stopwatch.Stop(); double seconds = stopwatch.Elapsed.TotalSeconds; Assert.IsTrue(seconds > 6 && seconds < 7, $"Took {seconds}, but expected 6-7 seconds"); Console.WriteLine(stopwatch.Elapsed); }
public void HomePageWithComplexReport() { string reportPath = Path.Combine(LoggingConfig.GetLogDirectory(), "HomePageWithComplexReport.html"); string rawResults = Path.Combine(LoggingConfig.GetLogDirectory(), "HomePageWithComplexReport.json"); // Get to home page LoginPageModel page = new LoginPageModel(this.TestObject); page.OpenLoginPage(); page.LoginWithValidCredentials(Config.GetGeneralValue("User"), Config.GetGeneralValue("Pass")); // Setup custom rules AxeBuilder builder = new AxeBuilder(WebDriver) .Exclude("#HomePage") .WithOutputFile(rawResults) .DisableRules("landmark-one-main", "page-has-heading-one"); // Reprot WebDriver.CreateAxeHtmlReport(builder.Analyze(), reportPath); // Check if there were any violations if (!File.ReadAllText(reportPath).Contains("Violation: 0")) { TestObject.AddAssociatedFile(reportPath); TestObject.AddAssociatedFile(rawResults); Assert.Fail($"Failed violation check see {reportPath} for more details."); } }
public void EnterInvalidCredentials() { string username = "******"; string password = "******"; LoginPageModel page = new LoginPageModel(this.TestObject); page.OpenLoginPage(); Assert.IsTrue(page.LoginWithInvalidCredentials(username, password)); }
public void BasicLoginTest() { // Get to home page LoginPageModel page = new LoginPageModel(this.TestObject); page.OpenLoginPage(); HomePageModel home = page.LoginWithValidCredentials(Config.GetGeneralValue("User"), Config.GetGeneralValue("Pass")); Assert.IsTrue(home.IsPageLoaded(), "Failed to load homepage"); }
public void EnterValidCredentialsTest() { string username = "******"; string password = "******"; LoginPageModel page = new LoginPageModel(this.TestObject); page.OpenLoginPage(); HomePageModel homepage = page.LoginWithValidCredentials(username, password); Assert.IsTrue(homepage.IsPageLoaded()); }
public void LoginPageBasic() { LoginPageModel page = new LoginPageModel(this.TestObject); page.OpenLoginPage(); AxeResult result = WebDriver.Analyze(); var resultJson = JsonConvert.SerializeObject(result, Formatting.Indented); Assert.IsTrue(string.IsNullOrEmpty(result.Error) && result.Violations.Length == 0, "Failures:" + resultJson); }
public void FindParent() { LoginPageModel page = new LoginPageModel(this.TestObject); page.OpenLoginPage(); // Find child node var element = this.WebDriver.FindElement(By.CssSelector("#Login")); Assert.AreEqual("Login", element.Text); // Get the child nodes parent var parentElement = element.FindElement(By.XPath("..")); Assert.AreEqual("usernamePassword:Login", parentElement.Text.Replace(Environment.NewLine, "").Trim()); }
public void LoginSubPageSubElementWithReport() { string reportPath = Path.Combine(LoggingConfig.GetLogDirectory(), "LoginSubPageWithReport.html"); LoginPageModel page = new LoginPageModel(this.TestObject); page.OpenLoginPage(); var jumbotron = WebDriver.FindElement(By.CssSelector(".jumbotron")) as IWrapsElement; WebDriver.CreateAxeHtmlReport(jumbotron.WrappedElement, reportPath); if (!File.ReadAllText(reportPath).Contains("Violation: 0")) { TestObject.AddAssociatedFile(reportPath); Assert.Fail($"Failed violation check see {reportPath} for more details."); } }
public void LoginPageWithReport() { string reportPath = Path.Combine(LoggingConfig.GetLogDirectory(), "LoginPageWithReport.html"); LoginPageModel page = new LoginPageModel(this.TestObject); page.OpenLoginPage(); AxeResult result = WebDriver.Analyze(); WebDriver.CreateAxeHtmlReport(result, reportPath); if (!string.IsNullOrEmpty(result.Error) || result.Violations.Length != 0) { TestObject.AddAssociatedFile(reportPath); Assert.Fail($"Failed error and/or violation check see {reportPath} for more details."); } }
public void FunWithTabsAndiFrames() { // Open a page with an iFrame WebDriver.Navigate().GoToUrl("https://magenicautomation.azurewebsites.net/Automation/iFramePage"); // Launch a new tab string newTab = "window.open('https://magenicautomation.azurewebsites.net');"; ((IJavaScriptExecutor)WebDriver).ExecuteScript(newTab); // Switch to new/last tab WebDriver.SwitchTo().Window(WebDriver.WindowHandles.Last()); // Interact with page LoginPageModel page = new LoginPageModel(this.TestObject); page.OpenLoginPage(); page.EnterCredentials("Bad", "StillBad"); // Switch back to origianl tab and interact with the iFrame content WebDriver.SwitchTo().Window(WebDriver.WindowHandles.First()); WebDriver.SwitchTo().Frame("mageniciFrame"); WebDriver.FindElement(By.CssSelector("[href='https://magenic.com/contact']")).Click(); WebDriver.FindElement(By.CssSelector("[placeholder='First Name']")).SendKeys("Ted"); WebDriver.FindElement(By.CssSelector("[placeholder='Last Name']")).SendKeys("Johnson"); // Do to top level page and interact withit WebDriver.SwitchTo().DefaultContent(); WebDriver.FindElement(By.CssSelector("#ContactButton A")).Click(); // Switch to last tab WebDriver.SwitchTo().Window(WebDriver.WindowHandles.Last()); page.LoginWithInvalidCredentials("Worse", "FarWorse"); Assert.IsTrue(page.ErrorMessage.Displayed, "Error message should be displayed"); }
public void OpenLoginPageTest() { LoginPageModel page = new LoginPageModel(this.TestObject); page.OpenLoginPage(); }
public void DoAllTheWeirdThings() { // Emulate iPhone this.TestObject.OverrideWebDriver(() => EmulateiPhone()); // Make sure we are using an event firing web driver Assert.IsInstanceOfType(WebDriver, typeof(EventFiringWebDriver)); ((EventFiringWebDriver)WebDriver).Navigating += WebDriverNavigating; ((EventFiringWebDriver)WebDriver).Navigated += WebDriverNavigated; LoginPageModel page = new LoginPageModel(this.TestObject); page.OpenLoginPage(); WebDriver.FindElement(By.CssSelector("body")).SendKeys(Keys.Control + "t"); // Add red border around login button var element = ((EventFiringWebDriver)WebDriver).GetLowLevelDriver().FindElement(By.Id("Login")); ((IJavaScriptExecutor)WebDriver).ExecuteScript("arguments[0].setAttribute('style', 'border: 2px solid red;');", element); // Save login button image Screenshot elementshot = ((ITakesScreenshot)element).GetScreenshot(); var elementshotPath = Path.Combine(LoggingConfig.GetLogDirectory(), "elementshot.png"); elementshot.SaveAsFile(elementshotPath); IncludeScreeshot(TestObject, elementshotPath); // Rename login button ((IJavaScriptExecutor)WebDriver).ExecuteScript("arguments[0].innerHTML='Messing With Dev'", element); // Save renamed login button image Screenshot elementshot2 = ((ITakesScreenshot)element).GetScreenshot(); var elementshotPath2 = Path.Combine(LoggingConfig.GetLogDirectory(), "elementshot2.png"); elementshot2.SaveAsFile(elementshotPath2); IncludeScreeshot(TestObject, elementshotPath2); // Save screenshot Screenshot screenshot = ((ITakesScreenshot)WebDriver).GetScreenshot(); var screenshotPath = Path.Combine(LoggingConfig.GetLogDirectory(), "screenshot.png"); screenshot.SaveAsFile(screenshotPath); IncludeScreeshot(TestObject, screenshotPath); // Launch a new tab string newTab = "window.open('https://magenicautomation.azurewebsites.net/Automation/iFramePage');"; ((IJavaScriptExecutor)WebDriver).ExecuteScript(newTab); // Switch to new/last tab WebDriver.SwitchTo().Window(WebDriver.WindowHandles.Last()); // Save screenshot Screenshot screenshotiFrame = ((ITakesScreenshot)WebDriver).GetScreenshot(); var screenshotPathiFrame = Path.Combine(LoggingConfig.GetLogDirectory(), "screenshotiFrame.png"); screenshotiFrame.SaveAsFile(screenshotPathiFrame); IncludeScreeshot(TestObject, screenshotPathiFrame); // Switch back to origianl tab and interact with the iFrame content WebDriver.SwitchTo().Window(WebDriver.WindowHandles.First()); // Save page source Log.LogMessage(MessageType.INFORMATION, WebDriver.PageSource); }