public static void PerformLogin(this IWebDriver driver, LabUser user, Prompt prompt, bool withLoginHint = false, bool adfsOnly = false) { UserInformationFieldIds fields = new UserInformationFieldIds(user); if (adfsOnly && !withLoginHint) { Trace.WriteLine("Logging in ... Entering username"); driver.FindElement(By.Id(CoreUiTestConstants.AdfsV4UsernameInputdId)).SendKeys(user.Upn); } else { if (!withLoginHint) { Trace.WriteLine("Logging in ... Entering username"); driver.FindElementById(fields.AADUsernameInputId).SendKeys(user.Upn.Contains("EXT") ? user.HomeUPN : user.Upn); Trace.WriteLine("Logging in ... Clicking <Next> after username"); driver.FindElementById(fields.AADSignInButtonId).Click(); try { driver.FindElementById(fields.AADSignInButtonId).Click(); Trace.WriteLine("Yes, workaround ok"); } catch { Trace.WriteLine("No, workaround failed"); } } if (user.FederationProvider == FederationProvider.AdfsV2 && user.IsFederated) { Trace.WriteLine("Logging in ... AFDSv2 - Entering the username again, this time in the ADFSv2 form"); driver.FindElementById(CoreUiTestConstants.AdfsV2WebUsernameInputId).SendKeys(user.Upn); } } Trace.WriteLine("Logging in ... Entering password"); driver.WaitForElementToBeVisibleAndEnabled(By.Id(fields.GetPasswordInputId())).SendKeys(user.GetOrFetchPassword()); Trace.WriteLine("Logging in ... Clicking next after password"); driver.WaitForElementToBeVisibleAndEnabled(By.Id(fields.GetPasswordSignInButtonId())).Click(); if (user.HomeUPN.Contains("outlook.com")) { Trace.WriteLine("Logging in ... clicking accept prompts for outlook.com MSA user"); driver.WaitForElementToBeVisibleAndEnabled(By.Id(CoreUiTestConstants.ConsentAcceptId)).Click(); } if (prompt == Prompt.Consent) { Trace.WriteLine("Consenting..."); driver.WaitForElementToBeVisibleAndEnabled(By.Id(fields.AADSignInButtonId)).Click(); } }
private static void EnterPassword(IWebDriver driver, LabUser user, UserInformationFieldIds fields) { Trace.WriteLine("Logging in ... Entering password"); string password = user.GetOrFetchPassword(); string passwordField = fields.GetPasswordInputId(); driver.WaitForElementToBeVisibleAndEnabled(By.Id(passwordField)).SendKeys(password); Trace.WriteLine("Logging in ... Clicking next after password"); driver.WaitForElementToBeVisibleAndEnabled(By.Id(fields.GetPasswordSignInButtonId())).Click(); }