public void SeleneWaitTo_HaveJsReturned_WaitsForPresenceInDom_OfInitiialyAbsent() { Configuration.Timeout = 0.6; Configuration.PollDuringWaits = 0.1; Given.OpenedEmptyPage(); var beforeCall = DateTime.Now; Given.OpenedPageWithBodyTimedOut( @" <p style='display:none'>a</p> <p style='display:none'>b</p> ", 300 ); Selene.WaitTo(Have.JSReturnedTrue( @" var expectedCount = arguments[0] return document.getElementsByTagName('p').length == expectedCount " , 2 )); var afterCall = DateTime.Now; Assert.Greater(afterCall, beforeCall.AddSeconds(0.3)); Assert.Less(afterCall, beforeCall.AddSeconds(0.6)); }
public static void Visit() { GoToUrl("https://todomvc4tasj.herokuapp.com/"); WaitFor(GetWebDriver(), 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')")); }
#pragma warning restore 649 public void Visit() { Open("https://todomvc4tasj.herokuapp.com/"); I.Should(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')")); }
public void SeleneWaitTo_HaveJsReturned_IsRenderedInError_OnAbsentElementTimeoutFailure() { Configuration.Timeout = 0.25; Configuration.PollDuringWaits = 0.1; Given.OpenedEmptyPage(); var beforeCall = DateTime.Now; try { Selene.WaitTo(Have.JSReturnedTrue( @" var expectedCount = arguments[0] return document.getElementsByTagName('p').length == expectedCount " , 2 )); } catch (WebDriverTimeoutException 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.25 seconds", lines); Assert.Contains("while waiting entity with locator: OpenQA.Selenium.Chrome.ChromeDriver", lines); Assert.Contains("for condition: JSReturnedTrue", lines); } // 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.All(p).count = 2", lines); // Assert.Contains("Reason:", lines); // Assert.Contains("actual: count = 0", lines); // } }
public void JsScrollIntoView() { Given.OpenedPageWithBody("<input style='margin-top:100cm;' type='text' value='ku ku'/>"); SeleneElement element = S("input"); new SeleneDriver(Selene.GetWebDriver()).Should(Have.No.JSReturnedTrue(ELEMENT_IN_VIEEW, element.ActualWebElement)); element.JsScrollIntoView(); new SeleneDriver(Selene.GetWebDriver()).Should(Have.JSReturnedTrue(ELEMENT_IN_VIEEW, element.ActualWebElement)); }
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")); }