CaffGeek/MBACNationals

View on GitHub
UITestsFramework/Pages/LoginPage.cs

Summary

Maintainability
A
40 mins
Test Coverage
using OpenQA.Selenium;
using OpenQA.Selenium.Support.UI;
using System;

namespace UITestsFramework.Pages
{
    public class LoginPage
    {
        private readonly WebDriverWait _wait;

        private IWebElement usernameTextField 
        { 
            get 
            { 
                _wait.Until(driver => driver.FindElement(By.Id("UserName")));
                return Browser.Driver.FindElement(By.Id("UserName"));
            } 
        }

        private IWebElement passwordTextField { get { return Browser.Driver.FindElement(By.Id("Password")); } }

        private IWebElement logInButton { get { return Browser.Driver.FindElement(By.CssSelector("input[type='submit']")); } }

        public LoginPage()
        {
            _wait = new WebDriverWait(Browser.Driver, new TimeSpan(0, 3, 0));
        }

        public void Goto()
        {
            Pages.TopNavigation.Login();
        }

        public bool IsAt()
        {
            return Browser.Title.Contains("Login");
        }

        public void LogInAsAdmin()
        {
            Login();
        }

        private void Login()
        {
            usernameTextField.SendKeys("Chad");
            passwordTextField.SendKeys("");

            logInButton.Click();
        }
    }
}