Search code examples
c#unit-testingtelerikanchorwebaii

Testing paging with Telerik's WebAii framework


I need to find every HtmlAnchor inside a Span with a specific id:

<span id="ctl05_dpIncidentFailures">
<span>1</span> // page 1
    <a href="/DesktopDefault.aspx?ptabindex=7&ptabid=31&tabindex=14&tabid=214&pageid=2">2</a>
    <a href="/DesktopDefault.aspx?ptabindex=7&ptabid=31&tabindex=14&tabid=214&pageid=3">3</a>
    <a href="/DesktopDefault.aspx?ptabindex=7&ptabid=31&tabindex=14&tabid=214&pageid=4">4</a>
    <a href="/DesktopDefault.aspx?ptabindex=7&ptabid=31&tabindex=14&tabid=214&pageid=5">5</a>
    <a href="/DesktopDefault.aspx?ptabindex=7&ptabid=31&tabindex=14&tabid=214&pageid=6">6</a>
    <a href="/DesktopDefault.aspx?ptabindex=7&ptabid=31&tabindex=14&tabid=214&pageid=7">7</a>
    <a href="/DesktopDefault.aspx?ptabindex=7&ptabid=31&tabindex=14&tabid=214&pageid=8">8</a>
    <a href="/DesktopDefault.aspx?ptabindex=7&ptabid=31&tabindex=14&tabid=214&pageid=9">9</a>
    <a href="/DesktopDefault.aspx?ptabindex=7&ptabid=31&tabindex=14&tabid=214&pageid=10">10</a>
    <a href="/DesktopDefault.aspx?ptabindex=7&ptabid=31&tabindex=14&tabid=214&pageid=11">11</a>
    <a href="/DesktopDefault.aspx?ptabindex=7&ptabid=31&tabindex=14&tabid=214&pageid=12">12</a>
    <a href="/DesktopDefault.aspx?ptabindex=7&ptabid=31&tabindex=14&tabid=214&pageid=13">13</a>
</span>

How could I do this using WebAii? This is what I have tried up to now:

IList<Element> allbtns = Find.AllByAttributes("href=~pageid"); // not working

var _pagingList = Find.ById<HtmlSpan>("~dpIncidentFailures"); // not working either

Solution

  • I have solved my issue:

        [TestMethod]
        public void TestPagingCauseFailure()
        {
            // act
            OpenPage(true);
    
            // get the hidden fields on this page
            IList<HtmlInputHidden> _hiddenFieldsList = Find.AllByAttributes<HtmlInputHidden>("~hfFailureID");
    
            IList<HtmlAnchor> _pageIndexes = Find.AllByAttributes<HtmlAnchor>("href=~pageid");
    
            // there are 12 pages (not including page 1)
            Assert.IsTrue(Equals(12,_pageIndexes.Count));
    
            // goto last page
            _pageIndexes.Last().Click();
    
            //get the hidden fields on this page
            IList<HtmlInputHidden> _hiddenFieldsList2 = Find.AllByAttributes<HtmlInputHidden>("~hfFailureID");
    
            string value1 = _hiddenFieldsList.Last().ID;
            string value2 = _hiddenFieldsList2.Last().ID;
    
            //compare the two last items in boths lists
            Assert.IsFalse(Equals(value1, value2));
    
        }