Ejemplo n.º 1
0
 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!"));
 }
Ejemplo n.º 2
0
 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()
                            );
        }
Ejemplo n.º 4
0
        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));
        }
Ejemplo n.º 6
0
        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"));
        }
Ejemplo n.º 7
0
        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
                    );
            }
        }
Ejemplo n.º 8
0
        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"));
        }
Ejemplo n.º 9
0
 public static void Toggle(string taskText)
 {
     List.FindBy(Have.ExactText(taskText)).Find(".toggle").Click();
 }
Ejemplo n.º 10
0
 public void IsLoaded()
 {
     NavBar.Should(Have.ExactText(DASHBOARD_PAGE_TITLE));
 }
Ejemplo n.º 11
0
 public void Toggle(string taskText)
 {
     IWebElementExtensions.Find(I.FindAll(list).FindBy(Have.ExactText(taskText)), ".toggle").Click();
 }
Ejemplo n.º 12
0
 public void ValidateNoRecords()
 {
     TableResults.Find(By.XPath(".//tbody//tr//td[2]"))
     .Should(Have
             .ExactText("No attendance records to display"));
 }
Ejemplo n.º 13
0
 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));
 }