public void ShouldThrowExceptionWhenSearchContextIsNotWebElement() { // Given var driver = new Mock <IWebDriver>(); driver.As <IJavaScriptExecutor>() .Setup(x => x.ExecuteScript(It.Is <string>(s => s.Contains("window.jQuery")), It.IsAny <object[]>())) .Returns(true); driver.As <IJavaScriptExecutor>() .Setup(x => x.ExecuteScript(It.Is <string>(s => s.Contains("function(element)")), It.IsAny <object[]>())) .Returns("body > div"); driver.As <IJavaScriptExecutor>() .Setup(x => x.ExecuteScript(It.Is <string>(s => s.Contains("jQuery('div')")), It.IsAny <object[]>())) .Returns(new List <IWebElement> { new Mock <IWebElement>().Object }); driver.As <IJavaScriptExecutor>() .Setup(x => x.ExecuteScript(It.Is <string>(s => s.Contains("jQuery('body > div')")), It.IsAny <object[]>())) .Returns(new List <IWebElement> { new Mock <IWebElement>().Object }); var elementMock = new Mock <ISearchContext>(); elementMock.As <IWrapsDriver>().SetupGet(x => x.WrappedDriver).Returns(driver.Object); var selector = By.JQuerySelector("div"); // When Action action = () => selector.FindElement(elementMock.Object); // Then Assert.Throws <NotSupportedException>(action); }
public void ShouldFindElementWithNestedJQuerySelector() { // Given var driver = new Mock <IWebDriver>(); driver.As <IJavaScriptExecutor>() .Setup(x => x.ExecuteScript(It.Is <string>(s => s.Contains("window.jQuery")), It.IsAny <object[]>())) .Returns(true); driver.As <IJavaScriptExecutor>() .Setup(x => x.ExecuteScript(It.Is <string>(s => s.Contains("function(element)")), It.IsAny <object[]>())) .Returns("body > div"); driver.As <IJavaScriptExecutor>() .Setup(x => x.ExecuteScript(It.Is <string>(s => s.Contains("jQuery('div')")), It.IsAny <object[]>())) .Returns(new List <IWebElement> { new Mock <IWebElement>().Object }); driver.As <IJavaScriptExecutor>() .Setup(x => x.ExecuteScript(It.Is <string>(s => s.Contains("jQuery('body > div')")), It.IsAny <object[]>())) .Returns(new List <IWebElement> { new Mock <IWebElement>().Object }); var elementMock = new Mock <ISearchContext>(); elementMock.As <IWrapsDriver>().SetupGet(x => x.WrappedDriver).Returns(driver.Object); elementMock.As <IWebElement>(); var selector = By.JQuerySelector("div"); // When var result = selector.FindElement(elementMock.Object); // Then Assert.NotNull(result); }
/// <summary> /// Check to see of the header of the job category table is correct. /// This should be used in the "Job Postings By Category" submenu /// </summary> /// <param name="category">The category to check for</param> /// <returns>True if the title matches the category parameter, false otherwise</returns> public bool JobCategoryTableHeaderIsCorrect(string category) { var tableCategory = Driver.FindElement( By.CssSelector("html body form div#MainRight table#maintbl.ScrollTable tbody tr#rowNbr0 td b")); return(tableCategory.Text.Contains(category)); }
/// <summary> /// Wait for the Angular loading screen to finish /// </summary> internal void WaitForPageToLoad() { _wait.Until(d => d.FindElement( By.CssSelector("div.super-loader")) .GetAttribute("class") .Contains("ng-hide")); _wait.Until(ExpectedConditions.InvisibilityOfElementLocated(By.CssSelector("div.cover"))); }
/// <summary> /// Signs in with noauth populating some default claims information for a random user, but using a set claimed identifier (so you can ensure its the same user in your application) /// </summary> /// <param name="driver">the driver which has the page.</param> /// <param name="claimedIdentifier">The claimed identifer for the user sent to your application.</param> public static void SignInWithNoAuth(this IWebDriver driver, string claimedIdentifier) { driver.SignInWithNoAuth((d) => { d.FindElement(By.JQuerySelector("#claimed-identifier")).Clear(); d.FindElement(By.JQuerySelector("#claimed-identifier")).SendKeys(claimedIdentifier); d.FindElement(By.JQuerySelector("#populate-random-user")).Click(); }); }
public HomePage navigateToHomePage() { Driver.Navigate().GoToUrl("http://www.google.co.uk"); Driver.FindElement(By.SizzleSelector(".gb_P:contains('Gmail')")).Click(); return(new HomePage()); }
public void ShouldCreateJQuerySelector() { // Given // When var selector = By.JQuerySelector("div"); // Then Assert.NotNull(selector); Assert.Equal("div", selector.RawSelector); }
/// <summary> /// Wait for the finished screen to have the given text /// </summary> /// <param name="text"></param> private void WaitForFinalScreenText(string text) { _driver.SwitchToFrameById("AppDataPage"); var div = By.CssSelector("div#DivHomeMain div.MainToDoItem"); var wait = new WebDriverWait(_driver, TimeSpan.FromSeconds(30)); wait.Until(ExpectedConditions.ElementIsVisible(div)); wait.Until(d => d.FindElement(div).Text.Contains(text)); _driver.SwitchToDefaultFrame(); }
public void FindElementThatDoesNotExist() { // Given var selector = By.JQuerySelector("#id-not"); // When Action action = () => this.Browser.FindElement(selector); // Then Assert.Throws <NoSuchElementException>(action); }
private static void SignInWithNoAuth(this IWebDriver driver, Action <IWebDriver> extraStuff) { if (!driver.Url.Contains(NoAuthBaseUrl)) { throw new Exception($"The current url ({driver.Url}) didn't contain { NoAuthBaseUrl } are you sure you clicked the login button?"); } driver.WaitUntilNotLoading(); extraStuff(driver); driver.WaitUntilNotLoading(); driver.FindElement(By.JQuerySelector("#login")).Click(); }
public void FindElements() { // Given var selector = By.JQuerySelector("div.main"); // When var elements = this.Browser.FindElements(selector); // Then Assert.Equal(2, elements.Count); }
public void FindElementsThatDoesNotExist() { // Given var selector = By.JQuerySelector("div.mainNot"); // When var elements = this.Browser.FindElements(selector); // Then Assert.Equal(0, elements.Count); }
public void ShouldThrowExceptionWhenCreatingJQuerySelectorWithEmptyValue() { // Given // When Action action = () => By.JQuerySelector(string.Empty); // Then var ex = Assert.Throws <ArgumentException>(action); Assert.Equal("selector", ex.ParamName); }
public void ShouldThrowExceptionWhenCreatingJQuerySelectorWithWhiteSpaceOnlyVariableValue() { // Given // When Action action = () => By.JQuerySelector("div", variable: " "); // Then var ex = Assert.Throws <ArgumentException>(action); Assert.Equal("variable", ex.ParamName); }
public void FindInnerElements() { // Given var root = this.Browser.FindElement(By.SizzleSelector("body")); var selector = By.SizzleSelector("h1"); // When var elements = root.FindElements(selector); Assert.Equal(1, elements.Count); }
public void FindElement() { // Given var selector = By.JQuerySelector("#id1"); // When var element = this.Browser.FindElement(selector); // Then Assert.NotNull(element); }
public void FindInnerElement() { // Given var root = this.Browser.FindElement(By.CssSelector("body")); var selector = By.JQuerySelector("div"); // When var element = root.FindElement(selector); // Then Assert.NotNull(element); }
public void FindInnerElements() { // Given var root = this.Browser.FindElement(By.JQuerySelector("body")); var selector = By.JQuerySelector("div"); // When var elements = root.FindElements(selector); // Then Assert.Equal(2, elements.Count); }
public void ShouldCreateJQuerySelectorWithJQueryVariable() { // Given const string Variable = "test"; // When var selector = By.JQuerySelector("div", variable: Variable); // Then Assert.NotNull(selector); Assert.Equal("div", selector.RawSelector); Assert.Equal("test", selector.Variable); }
public void ShouldCreateJQuerySelectorWithContext() { // Given var context = By.JQuerySelector("body"); // When var selector = By.JQuerySelector("div", context); // Then Assert.NotNull(selector); Assert.Equal("div", selector.RawSelector); Assert.Equal("body", selector.Context.RawSelector); }
/// <summary> /// Signs in with noauth using a set claimed identifier (so you can ensure its the same user in your application), and a predefined list of claims (which overrides the default data). /// </summary> /// <param name="driver">the driver which has the page.</param> /// <param name="claimedIdentifier">The claimed identifer for the user sent to your application.</param> /// <param name="claims">A list of claims to make to your application.</param> public static void SignInWithNoAuth(this IWebDriver driver, string claimedIdentifier, List <Claim> claims) { driver.SignInWithNoAuth((d) => { d.FindElement(By.JQuerySelector("#claimed-identifier")).Clear(); d.FindElement(By.JQuerySelector("#claimed-identifier")).SendKeys(claimedIdentifier); for (int i = 0; i < claims.Count(); i++) { d.FindElement(By.JQuerySelector("#add-claim")).Click(); d.FindElement(By.JQuerySelector($"[name=\"Claims[{i}].Type\"")).SendKeys(claims[i].Type); d.FindElement(By.JQuerySelector($"[name=\"Claims[{i}].Value\"")).SendKeys(claims[i].Value); } }); }
public void ExpectedConditionsSupport() { // Given var condition = ExpectedConditions.ElementIsVisible(By.JQuerySelector("h1")); // When var wait = new WebDriverWait(this.Browser, TimeSpan.FromSeconds(3)); wait.Until(condition); // Then Assert.True(true); }
/// <summary> /// Get the ID of a Job Posting. The Job ID is only created after the posting has been saved. If it has not been saved, the ID will be "0" /// </summary> /// <returns>The ID of the Job Posting</returns> public void GetJobId() { try { BaseWaitForPageToLoad(Driver, 100); // wait until the div containing the Job ID is populated WebDriverWait wait = new WebDriverWait(Driver, new TimeSpan(0, 0, 5)); wait.Until(d => !d.FindElement(By.Id("CurrentID")).GetAttribute("value").Equals("0")); JobId = JobID.GetAttribute("value"); } catch (Exception e) { throw e; } }
/// <summary> /// Get the text of the Preview button. /// </summary> /// <returns>The text of the Preview button</returns> public string GetPreviewButtonText() { try { BaseWaitForPageToLoad(Driver, 100); // wait until the button text changes after saving WebDriverWait wait = new WebDriverWait(Driver, new TimeSpan(0, 0, 5)); bool txt = wait.Until(d => d.FindElement(By.Id("ViewLiveButton")).GetAttribute("value").Contains("ID")); return PreviewButton.GetAttribute("value"); } catch (Exception e) { throw e; } }
public void ShouldThrowExceptionWhenSearchContextDoesNotWrapDriver() { // Given var elementMock = new Mock <ISearchContext>(); elementMock.As <IWebElement>(); var selector = By.JQuerySelector("div"); // When Action action = () => selector.FindElement(elementMock.Object); // Then Assert.Throws <NotSupportedException>(action); }
public void ShouldThrowExceptionWhenElementIsNotFoundWithJQuerySelector() { // Given var driverMock = new Mock <IWebDriver>(); driverMock.As <IJavaScriptExecutor>() .Setup(x => x.ExecuteScript(It.Is <string>(s => s.Contains("window.jQuery")), It.IsAny <object[]>())) .Returns(true); driverMock.As <IJavaScriptExecutor>() .Setup(x => x.ExecuteScript(It.Is <string>(s => s.Contains("jQuery('div')")), It.IsAny <object[]>())) .Returns(new List <IWebElement>()); var selector = By.JQuerySelector("div"); // When Action action = () => selector.FindElement(driverMock.Object); // Then Assert.Throws <NoSuchElementException>(action); }
public void ShouldReturnEmptyResultWhenNoElementsAreFoundWithJQuerySelector() { // Given var driverMock = new Mock <IWebDriver>(); driverMock.As <IJavaScriptExecutor>() .Setup(x => x.ExecuteScript(It.Is <string>(s => s.Contains("window.jQuery")), It.IsAny <object[]>())) .Returns(true); driverMock.As <IJavaScriptExecutor>() .Setup(x => x.ExecuteScript(It.Is <string>(s => s.Contains("jQuery('div')")), It.IsAny <object[]>())) .Returns(new List <IWebElement>()); var selector = By.JQuerySelector("div"); // When var result = selector.FindElements(driverMock.Object); // Then Assert.NotNull(result); Assert.Equal(0, result.Count); }
/// <summary> /// Get the applicant number /// </summary> /// <returns></returns> public int GetAppNo() { var appNoElement = _driver.FindElement(By.Name("appno")); return(int.Parse(appNoElement.GetAttribute("value"))); }
/// <summary> /// Signs in with noauth populating some default claims information for a random user. /// </summary> /// <param name="driver">the driver which has the page.</param> public static void SignInWithNoAuth(this IWebDriver driver) { driver.SignInWithNoAuth((d) => { d.FindElement(By.JQuerySelector("#populate-random-user")).Click(); }); }
private static bool IsLoading(this IWebDriver driver) { return(driver.FindElements(By.JQuerySelector(".loading")).Count > 0); }