public static void LaunchBrowser(IWebDriver driver)
        {
            string _url         = ConfigurationManager.AppSettings["URL"];
            int    wait         = Convert.ToInt32(ConfigurationManager.AppSettings["WaitTime"]);
            string _BrowserName = driver.GetType().FullName;

            string[] _name = _BrowserName.Split('.');
            if (_name[2] == "IE")
            {
                Logger.log.Info(" Launching Internet Explorer Browser");
                driver.Url = _url;
                driver.Manage().Window.Maximize();
                driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(wait);
            }
            else if (_name[2] == "Firefox")
            {
                Logger.log.Info(" Launching Firefox Browser");
                driver.Navigate().GoToUrl(_url);
                driver.Manage().Window.Maximize();
                driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(wait);
            }
            else if (_name[2] == "Chrome")
            {
                Logger.log.Info(" Launching Chrome Browser");
                driver.Navigate().GoToUrl(_url);
                driver.Manage().Window.Maximize();
                driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(wait);
            }
            else if (_name[2] == "Edge")
            {
                Logger.log.Info(" Launching Microsoft Edge Browser");
                driver.Navigate().GoToUrl(_url);
                driver.Manage().Window.Maximize();
                driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(wait);
                driver.Navigate().GoToUrl("javascript:document.getElementById('overridelink').click()");
            }
            else
            {
                Logger.log.Info("Specified Browser :" + _name[2] + " is not supported");
            }
            Logger.log.Info("Login Page Loaded");
            BaseMethods.SleepTimeOut(2000);
            _02_LoginPage _Login   = new _02_LoginPage(driver);
            ArrayList     list     = _Login.GetLoginDetails("ER_TESTDATA", "Login", "KeyName", "Admin");
            string        username = list[1].ToString();
            string        password = list[2].ToString();

            _Login.eletxtUsername.SendKeys(username);
            Logger.log.Info(" Entered Username: "******" Entered Password: "******" Clicked on Login Button");
        }
        public void InvalidLoginValidation()
        {
            string        ExpectedAlertText = "Message :\r\n\r\n- The login details supplied were incorrect.\r\n";
            _02_LoginPage _Login            = new _02_LoginPage(_driver);

            ExtentReport.test = ExtentReport.extent.StartTest("Login Page: Invalid Login Validation");
            string username = "******";
            string password = "******";

            _Login.Username(username);
            _Login.Password(password);
            _Login.LoginButton();
            string ActualAlertText = BaseMethods.GetAlertText(_driver);

            Assert.AreEqual(ExpectedAlertText, ActualAlertText, "Assert Pass");
            ExtentReport.test.Log(LogStatus.Pass, "Alert Message is Verified");
        }
        public void OnlyUsernameLoginValidation()
        {
            string        ExpectedAlertText = "Message :\r\n\r\n- The system was not able to validate the login details supplied.\r\n";
            _02_LoginPage _Login            = new _02_LoginPage(_driver);

            ExtentReport.test = ExtentReport.extent.StartTest("Login Page: Only Username Login Validation");
            ArrayList list     = _Login.GetLoginDetails("ER_TESTDATA", "Login", "KeyName", "Admin");
            string    username = list[1].ToString();
            string    password = list[2].ToString();

            _Login.Username(username);
            _Login.Password(password);
            _Login.LoginButton();
            string ActualAlertText = BaseMethods.GetAlertText(_driver);

            Assert.AreEqual(ExpectedAlertText, ActualAlertText, "Assert Pass");
            ExtentReport.test.Log(LogStatus.Pass, "Alert Message is Verified");
        }
        public void ForgotYourPassword()
        {
            string        _EmailID = "*****@*****.**";
            _02_LoginPage _Login   = new _02_LoginPage(_driver);

            ExtentReport.test = ExtentReport.extent.StartTest("Login Page: Forgot Your Password");
            ExtentReport.test.Log(LogStatus.Info, "Clicking on Forgot Your Password? link");
            _Login.ForgotPasswordLink();
            _Login.EnterEmailID(_EmailID);
            ExtentReport.test.Log(LogStatus.Info, "Entered Email ID");
            _Login.Reset();
            ExtentReport.test.Log(LogStatus.Info, "Clicked on Reset Button");
            string _ActualEmailID = _Login.VerifyEmailID();

            Assert.AreEqual(_EmailID, _ActualEmailID, "Assert Pass");
            ExtentReport.test.Log(LogStatus.Pass, "Email Id Verification Assertion Passed");
            _Login.BackToLogin();
        }
        public void LogintoApplication()
        {
            _02_LoginPage _Login = new _02_LoginPage(_driver);

            ExtentReport.test = ExtentReport.extent.StartTest("Login Page: Login to Application");
            ExtentReport.test.Log(LogStatus.Info, "Login Page Assertion Started");
            string ExpectedValue = "Forgot your Password";
            string ActualValue   = _Login.GetLinkText();

            Assert.AreEqual(ExpectedValue, ActualValue, "Assert Pass");
            ExtentReport.test.Log(LogStatus.Pass, "Login Page Assertion Passed");
            Logger.log.Info("Login Page Assert Passed");
            ExtentReport.test.Log(LogStatus.Pass, "Logging into Application with valid UserID and Password");
            Logger.log.Info("Logging into Application with valid UserID and Password");
            ArrayList list     = _Login.GetLoginDetails("ER_TESTDATA", "Login", "KeyName", "User");
            string    username = list[1].ToString();
            string    password = list[2].ToString();

            _Login.Username(username);
            _Login.Password(password);
            _Login.LoginButton();
            ExtentReport.test.Log(LogStatus.Pass, "Login to Application Test Passed");
            Logger.log.Info("Login Test Ended");
        }