public void SElementShouldHaveText() { Given.OpenedPageWithBody("<h1>Hello Babe!</h1>"); Selene.S("h1").Should(Have.Text("Hello")); Selene.S("h1").ShouldNot(Have.Text("Hello world!")); Selene.S("h1").ShouldNot(Have.ExactText("Hello")); Selene.S("h1").Should(Have.ExactText("Hello Babe!")); }
public void HaveText() { Given.OpenedPageWithBody("<h1>Hello Babe!</h1>"); S("h1").Should(Have.Text("Hello")); S("h1").Should(Have.No.Text("Hello world!")); S("h1").Should(Have.No.ExactText("Hello")); S("h1").Should(Have.ExactText("Hello Babe!")); }
public void HookWaitAction_SetPerElements_CanLogActionsLikeClickAndShould() { List <string> log = new List <string>(); Configuration.Timeout = 0.1; Configuration.PollDuringWaits = 0.01; Action <object, Func <string>, Action> logIt = (entityObject, describeComputation, wait) => { log.Add($"{entityObject}.{describeComputation()}: STARTED"); try { wait(); log.Add($"{entityObject}.{describeComputation()}: PASSED"); } catch (Exception error) { log.Add($"{entityObject}.{describeComputation()}: FAILED"); throw error; } }; Given.OpenedPageWithBody(@" <button>Click me!</button> "); var button = S("button").With(_hookWaitAction: logIt); var allButtons = SS("button").With(_hookWaitAction: logIt); var absent = S(".absent").With(_hookWaitAction: logIt); var allAbsent = SS(".absent").With(_hookWaitAction: logIt); allButtons.Should(Have.Count(1)); button.Should(Have.ExactText("Click me!")); button.Click(); button.With(clickByJs: true).Click(); try { absent.Click(); } catch {} try { absent.Should(Have.Text("some")); } catch {} try { allAbsent.Should(Have.Count(1)); } catch {} try { absent.FindAll(".child").Should(Have.Count(1)); } catch {} Assert.AreEqual(log, @"Browser.All(button).Should(Have.Count = 1): STARTED Browser.All(button).Should(Have.Count = 1): PASSED Browser.Element(button).Should(Have.ExactText(«Click me!»)): STARTED Browser.Element(button).Should(Have.ExactText(«Click me!»)): PASSED Browser.Element(button).ActualWebElement.Click(): STARTED Browser.Element(button).ActualWebElement.Click(): PASSED Browser.Element(button).JsClick(centerXOffset: 0, centerYOffset: 0): STARTED Browser.Element(button).JsClick(centerXOffset: 0, centerYOffset: 0): PASSED Browser.Element(.absent).ActualWebElement.Click(): STARTED Browser.Element(.absent).ActualWebElement.Click(): FAILED Browser.Element(.absent).Should(Have.TextContaining(«some»)): STARTED Browser.Element(.absent).Should(Have.TextContaining(«some»)): FAILED Browser.All(.absent).Should(Have.Count = 1): STARTED Browser.All(.absent).Should(Have.Count = 1): FAILED Browser.Element(.absent).All(.child).Should(Have.Count = 1): STARTED Browser.Element(.absent).All(.child).Should(Have.Count = 1): FAILED" .Split("\n").Select(item => item.Trim()).ToList() ); }
public void Complete_Todo() { Open("http://todomvc.com/examples/emberjs/"); S("#new-todo").SetValue("a").PressEnter(); S("#new-todo").SetValue("b").PressEnter(); S("#new-todo").SetValue("c").PressEnter(); SS("#todo-list>li").FindBy(Have.ExactText("b")).Find(".toggle").Click(); SS("#todo-list>li").FilterBy(Have.CssClass("completed")).Should(Have.ExactTexts("b")); SS("#todo-list>li").FilterBy(Have.No.CssClass("completed")).Should(Have.ExactTexts("a", "c")); }
public void SElementSearchWithTextResultConditons() { String searchText = "Hello there!"; String xpathSearchText = String.Format(@"//*[contains(text(), ""{0}"")]", searchText); IWebDriver webDriver = Selene.GetWebDriver(); IWebElement element = webDriver.FindElement(By.XPath(xpathSearchText)); StringAssert.Contains(searchText, element.Text); // verify can use part of the search text in the condition Selene.S(NSelene.With.Text(searchText)).Should(Have.Text("Hello")); // verify can use the raw text in assertions - more about it in a dedicated class(es) SElementTextMultiLineSearchTests Selene.S(NSelene.With.Text("there!"), webDriver).Should(Have.ExactText(searchText)); Selene.S(NSelene.With.ExactText(element.Text), webDriver).Should(Have.ExactText(element.Text)); }
public void FilterTasks() { Open("https://todomvc4tasj.herokuapp.com/"); S("#new-todo").SetValue("a").PressEnter(); S("#new-todo").SetValue("b").PressEnter(); S("#new-todo").SetValue("c").PressEnter(); SS("#todo-list>li").Should(Have.ExactTexts("a", "b", "c")); SS("#todo-list>li").FindBy(Have.ExactText("b")).Find(".toggle").Click(); S(By.LinkText("Active")).Click(); SS("#todo-list>li").FilterBy(Be.Visible).Should(Have.ExactTexts("a", "c")); S(By.LinkText("Completed")).Click(); SS("#todo-list>li").FilterBy(Be.Visible).Should(Have.ExactTexts("b")); }
public void Should_HaveValue_Or_HaveText_IsRenderedInError_OnDifferentActualAsEmptyFailure() { Configuration.Timeout = 0.25; Configuration.PollDuringWaits = 0.1; Given.OpenedPageWithBody( @" <label value='some'>thing</label> " ); var beforeCall = DateTime.Now; try { S("label").Should(Have.Value("").Or(Have.ExactText(""))); } catch (TimeoutException error) { var afterCall = DateTime.Now; Assert.Greater(afterCall, beforeCall.AddSeconds(0.25)); var accuracyDelta = 0.2; Assert.Less(afterCall, beforeCall.AddSeconds(0.25 + 0.1 + accuracyDelta)); // TODO: shoud we check timing here too? var lines = error.Message.Split("\n").Select( item => item.Trim() ).ToList(); Assert.Contains("Timed out after 0.25s, while waiting for:", lines); Assert.Contains("Browser.Element(label).Should(Have.Attribute(value = «») OR Have.ExactText(«»))", lines); Assert.Contains("Reason:", lines); Assert.Contains("Actual value: «some»", lines); Assert.Contains( "Actual webelement: <label value=\"some\">thing</label>", lines ); Assert.Contains("Actual text: «thing»", lines); Assert.Contains( // this line will be repeated twice; we mention it here just to remember to refactor in future "Actual webelement: <label value=\"some\">thing</label>", lines ); } }
public void FiltersTasks() { Open("https://todomvc4tasj.herokuapp.com/"); WaitTo(Have.JSReturnedTrue( "return " + "$._data($('#new-todo').get(0), 'events').hasOwnProperty('keyup')&& " + "$._data($('#toggle-all').get(0), 'events').hasOwnProperty('change') && " + "$._data($('#clear-completed').get(0), 'events').hasOwnProperty('click')")); S("#new-todo").SetValue("a").PressEnter(); S("#new-todo").SetValue("b").PressEnter(); S("#new-todo").SetValue("c").PressEnter(); SS("#todo-list>li").Should(Have.ExactTexts("a", "b", "c")); SS("#todo-list>li").FindBy(Have.ExactText("b")).Find(".toggle").Click(); S(By.LinkText("Active")).Click(); SS("#todo-list>li").FilterBy(Be.Visible).Should(Have.ExactTexts("a", "c")); S(By.LinkText("Completed")).Click(); SS("#todo-list>li").FilterBy(Be.Visible).Should(Have.ExactTexts("b")); }
public static void Toggle(string taskText) { List.FindBy(Have.ExactText(taskText)).Find(".toggle").Click(); }
public void IsLoaded() { NavBar.Should(Have.ExactText(DASHBOARD_PAGE_TITLE)); }
public void Toggle(string taskText) { IWebElementExtensions.Find(I.FindAll(list).FindBy(Have.ExactText(taskText)), ".toggle").Click(); }
public void ValidateNoRecords() { TableResults.Find(By.XPath(".//tbody//tr//td[2]")) .Should(Have .ExactText("No attendance records to display")); }
public void IsLoaded() { // Switching to Frame to be able to interact with elements. GetWebDriver().SwitchTo().Frame(0); NavBar.Should(Have.ExactText(ATTENDANCE_RECORDS_PAGE_TITLE)); }