public LandingPage LoginAsAdmin(string username, string password) { // https://crm422752.crm.dynamics.com/ WebDriver.ElementWithWait(x => x.FindElement(By.Id("i0116")), TimeSpan.FromSeconds(10)).Clear(); WebDriver.ElementWithWait(x => x.FindElement(By.Id("i0116")), TimeSpan.FromSeconds(10)).SendKeys(username); WebDriver.ElementWithWait(x => x.FindElement(By.Id("i0116")), TimeSpan.FromSeconds(10)).SendKeys(Keys.Enter); // ugly Thread.Sleep(1000); WebDriver.FindElement(By.Id("i0118")).Clear(); Thread.Sleep(500); WebDriver.ElementWithWait(x => x.FindElement(By.Id("i0118")), TimeSpan.FromSeconds(10)) .SendKeys(password); Thread.Sleep(500); WebDriver.ElementWithWait(x => x.FindElement(By.Id("idSIButton9")), TimeSpan.FromSeconds(10)) .Click(); Thread.Sleep(3000); var staySignedInDialog = WebDriver.ElementWithWait(x => x.FindElement(By.Id("displayName")), TimeSpan.FromSeconds(10)); if (staySignedInDialog?.Text == "*****@*****.**") { return(NavigateTo <LandingPage>(By.Id("idBtn_Back"), e => e.Click())); } return(null); }
///// <summary> ///// JQuery selector example ///// </summary> //public IWebElement LoginButton => WebDriver.FindElementByJQuery("input[name='btnSubmit']"); public LoginPage BrittleLoginAsAdmin(string baseUrl, string password) { // https://crm422752.crm.dynamics.com/ WebDriver.Navigate().GoToUrl(baseUrl); UserIdField.Clear(); // sending a single quote is not possible with the Chrome Driver, it sends two single quotes! UserIdField.SendKeys("*****@*****.**"); NextButton.Click(); PasswordField.Clear(); PasswordField.SendKeys(password); var wait = new WebDriverWait(WebDriver, TimeSpan.FromSeconds(5)); wait.Until(f => f.FindElements(By.XPath("//div[@class='col-xs-24 no-padding-left-right button-container']/div/input")).FirstOrDefault()); SignInButton = WebDriver.FindElements(By.Id("idSIButton9")).FirstOrDefault(); SignInButton.Click(); var staySignedInDialog = WebDriver.FindElement(By.XPath("//div[@role='heading']")); if (staySignedInDialog?.Text == "Stay signed in?") { wait = new WebDriverWait(WebDriver, TimeSpan.FromSeconds(5)); wait.Until(f => f.FindElements(By.XPath("//div[@class='col-xs-24 no-padding-left-right button-container']/div/input")).FirstOrDefault()); var noButton = WebDriver.FindElements(By.Id("idBtn_Back")).FirstOrDefault(); noButton.Click(); } return(this); }