public void LoginHelper(string methodName, string email, string password) { ExtentTest test = extent.CreateTest(methodName).Info("Test Started"); string timeStamp = DateTime.Now.ToString("yyyyMMddHHmmss"); ITakesScreenshot ts = BrowserUtility.GetDriver as ITakesScreenshot; try { BrowserUtility.GotoURL(); var loginPage = new LoginPage(BrowserUtility.GetDriver, test); Assert.IsTrue(loginPage.isAt(), "Is this the login page?"); test.Pass($" Go to '{BrowserUtility.baseURL}' on {BrowserUtility.browser} browser"); bool loggedIn = loginPage.Login(email, password); Thread.Sleep(2000); switch (methodName) { case "LoginWithValidCredentials": Assert.IsTrue(loggedIn, "Is Login Successful?"); test.Log(Status.Info, "User is now logged in!"); break; case "LoginWithInvalidEmail": Assert.IsTrue(loginPage.GetEmailValidationMessage().Equals("Invalid email"), "Is Email format valid?"); test.Log(Status.Info, @"Email format is validated to be 'Invalid'!"); break; case "LoginWithoutEmail": Assert.IsTrue(loginPage.GetEmailValidationMessage().Equals("Required"), "Is Email Required?"); test.Log(Status.Info, @"Email Field is validated to be 'Required'!"); break; case "LoginWithoutPassword": Assert.IsTrue(loginPage.GetPasswordValidationMessage().Equals("Required"), "Is Password Required?"); test.Log(Status.Info, @"Password Field is validated to be 'Required'!"); break; case "LoginWithoutCredentials": Assert.IsTrue(loginPage.GetEmailValidationMessage().Equals("Required"), "Is Email Required?"); Assert.IsTrue(loginPage.GetPasswordValidationMessage().Equals("Required"), "Is Password Required?"); test.Log(Status.Info, @"Email & Password Fields validated to be 'Required'!"); break; case "LoginWithWrongEmail": Assert.IsTrue(loginPage.ErrorSpanText().Equals("Incorrect Login parameters"), "Is Email wrong?"); test.Log(Status.Info, @"'Incorrect Login parameters!' displayed"); break; case "LoginWithWrongPassword": Assert.IsTrue(loginPage.ErrorSpanText().Equals("Incorrect Login parameters"), "Is Password wrong?"); test.Log(Status.Info, @"'Incorrect Login parameters!' displayed"); break; } //string fileName = $@"C:\Users\USER01\source\repos\TestAutomationFramework\Screenshots\{methodName}_{timeStamp}.jpg"; //ts.GetScreenshot().SaveAsFile(fileName); //test.Pass("Test Passed!", MediaEntityBuilder.CreateScreenCaptureFromPath($@"C:\Users\USER01\source\repos\TestAutomationFramework\Screenshots\{methodName}_{timeStamp}.jpg").Build()); string base64String = ts.GetScreenshot().AsBase64EncodedString; test.Pass("Test Passed! ", MediaEntityBuilder.CreateScreenCaptureFromBase64String(base64String).Build()); //BrowserUtility.Close(); } catch (Exception e) { //ts.GetScreenshot().SaveAsFile($@"C:\Users\USER01\source\repos\TestAutomationFramework\Screenshots\Error_{methodName}_{timeStamp}.jpg"); //test.Fail(e.Message, MediaEntityBuilder.CreateScreenCaptureFromPath($@"C:\Users\USER01\source\repos\TestAutomationFramework\Screenshots\Error_{methodName}_{timeStamp}.jpg").Build()); string base64String = ts.GetScreenshot().AsBase64EncodedString; test.Fail(e.Message, MediaEntityBuilder.CreateScreenCaptureFromBase64String(base64String, "See Screenshot").Build()); test.Log(Status.Fail, "Test Failed!"); Console.WriteLine(e.StackTrace); } finally { //if (BrowserUtility.GetDriver != null) // BrowserUtility.Close(); } }