public void ReturnsTrue_AfterWaiting_OnMatched_AfterDelayLessThanTimeout() { Configuration.Timeout = 2.000; var hiddenDelay = 500; var visibleDelay = hiddenDelay + 250; Given.OpenedEmptyPage(); var beforeCall = DateTime.Now; Given.WithBodyTimedOut( "<p id='will-appear' style='display:none'>Hello!</p>", hiddenDelay ); Given.ExecuteScriptWithTimeout( "document.getElementsByTagName('p')[0].style = 'display:block';", visibleDelay ); var result = SS("#will-appear").WaitUntil(Have.Texts("Hello!")); var afterCall = DateTime.Now; Assert.IsTrue(result); Assert.IsTrue(afterCall > beforeCall.AddMilliseconds(visibleDelay)); Assert.IsTrue(afterCall < beforeCall.AddSeconds(Configuration.Timeout)); }
public void SEeleneCollectionSearchWithText() { String searchText = "Dear"; String xpathTextSearch = String.Format("//*[contains(text(),'{0}')]", searchText); // search using wrapped driver methods ReadOnlyCollection <IWebElement> webElements = Selene.GetWebDriver().FindElements(By.XPath(xpathTextSearch)); Assert.NotNull(webElements); Assert.Greater(webElements.Count, 0); StringAssert.Contains(searchText, webElements[0].Text); // search thru NSelene By seleneLocator = NSelene.With.Text(searchText); IWebDriver webDriver = Selene.GetWebDriver(); SeleneCollection seleWebElements = Selene.SS(seleneLocator); Assert.NotNull(seleWebElements); Assert.AreEqual(seleWebElements.Count, webElements.Count); StringAssert.Contains(searchText, seleWebElements[0].Text); // confirm all have searchText seleWebElements = Selene.SS(seleneLocator, webDriver); Assert.AreEqual(seleWebElements.FilterBy(Have.Text(searchText)).Count, seleWebElements.Count); // exercise NSelene extension methods Selene.SS(seleneLocator).Should(Have.Texts("Bob", "Frank")); Selene.SS(seleneLocator).ShouldNot(Have.Texts("Bob")); Selene.SS(seleneLocator).ShouldNot(Have.Texts("Bob", "Kate", "Frank")); Selene.SS(seleneLocator).Should(Have.ExactTexts("Dear Bob", "Dear Frank")); }
public void SCollectionShouldHaveTextsAndExactTexts() { Given.OpenedPageWithBody("<ul>Hello to:<li>Dear Bob</li><li>Lovely Kate</li></ul>"); SS("li").ShouldNot(Have.Texts("Kate", "Bob")); SS("li").ShouldNot(Have.Texts("Bob")); SS("li").ShouldNot(Have.Texts("Bob", "Kate", "Joe")); SS("li").Should(Have.Texts("Bob", "Kate")); SS("li").ShouldNot(Have.ExactTexts("Bob", "Kate")); SS("li").ShouldNot(Have.ExactTexts("Lovely Kate", "Dear Bob")); SS("li").ShouldNot(Have.ExactTexts("Dear Bob")); SS("li").ShouldNot(Have.ExactTexts("Dear Bob", "Lovely Kate", "Funny Joe")); SS("li").Should(Have.ExactTexts("Dear Bob", "Lovely Kate")); }
public void ReturnsFalse_AfterWaitingTimeout_OnNotMatched() { Configuration.Timeout = 0.75; var beforeCall = DateTime.Now; Given.OpenedPageWithBody( "<p id='hidden' style='display:none'>Hello!</p>" ); var result = SS("#hidden").WaitUntil(Have.Texts("Hello!")); var afterCall = DateTime.Now; Assert.IsFalse(result); Assert.IsTrue(afterCall >= beforeCall.AddSeconds(Configuration.Timeout)); }
public void WaitForVisibility_OnActionsLikeClick() { Configuration.SetValueByJs = true; // todo: fix to work only when SetValueByJs // Given.OpenedPageWithBody(@" // <div id='todo-app'> // <input id='new-todo' placeholder='what needs to be done?' /> // <ul id='todo-list'> // </ul> // </div>" // ); // Selene.ExecuteScript(@" // let addTodo = function(event) { // let inputField = event.target; // let text = inputField.value.trim(); // if (event.which === enterCode && text !== '') { // let newli = document.createElement('li'); // newli.textContent = text; // document.getElementById('todo-list').appendChild(newli); // inputField.value = ''; // } // }; // let teachNewTodoFieldToAddTodos = function() { // document.getElementById('new-todo').addEventListener('keyup', addTodo); // }; // document.addEventListener('DOMContentLoaded', teachNewTodoFieldToAddTodos) // " // ); Open("http://todomvc.com/examples/emberjs"); S("#new-todo").SetValue("very long task description set instantly").PressEnter(); SS("#todo-list>li").Should(Have.Texts("long task")); }
public static void ShouldBe(params string[] names) { List.FilterBy(Be.Visible).Should(Have.Texts(names)); }
public void ShouldBe(params string[] names) { I.FindAll(list).FilterBy(Be.Visible).Should(Have.Texts(names)); }