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"));
        }
Exemple #3
0
 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"));
        }
Exemple #6
0
 public static void ShouldBe(params string[] names)
 {
     List.FilterBy(Be.Visible).Should(Have.Texts(names));
 }
Exemple #7
0
 public void ShouldBe(params string[] names)
 {
     I.FindAll(list).FilterBy(Be.Visible).Should(Have.Texts(names));
 }