Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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.");
            }
        }
Esempio n. 3
0
        public void EnterInvalidCredentials()
        {
            string         username = "******";
            string         password = "******";
            LoginPageModel page     = new LoginPageModel(this.TestObject);

            page.OpenLoginPage();
            Assert.IsTrue(page.LoginWithInvalidCredentials(username, password));
        }
Esempio n. 4
0
        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");
        }
Esempio n. 5
0
        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());
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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());
        }
Esempio n. 8
0
        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.");
            }
        }
Esempio n. 9
0
        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.");
            }
        }
Esempio n. 10
0
        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");
        }
Esempio n. 11
0
        public void OpenLoginPageTest()
        {
            LoginPageModel page = new LoginPageModel(this.TestObject);

            page.OpenLoginPage();
        }
Esempio n. 12
0
        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);
        }