Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I get the children of an Element in Watin?

Tags:

c#

watin

Given the following html:

<ul id="search-results">
   <li>
        <h3>Result 1</h3>
        <span class="some-info">Tag line</span>
   </li>
   <li>
        <h3>Result 2</h3>
        <span class="some-info">Another bit</span>
   </li>
   <li>
        <h3>Result 2</h3>
        <span class="some-info">Another bit</span>
   </li>
</ul>

I can get the ul element with:

Element ul = ie.Element(Find.ById("search-results"));

How do I iterate over the children of the search-results?

I've managed to get as far as:

var allListItems = ie.Elements.Filter(e => e.Parent != null && e.Parent.Id == "search-results");

But this doesn't help me assert things about the H3 or span contained within the li's.

like image 649
Gareth Davis Avatar asked Oct 20 '10 13:10

Gareth Davis


1 Answers

*Option1:*Based on your code, you can try something like:

ie.Spans.Filter(Find.ByClass("some-info"))[0...2].PreviousSibling;

you will need to loop over each span.

*Option2:*Based on some suggestions from the Watin mail list (similar to your own answer as well):

IElementContainer elem = (IElementContainer)ie.Element(Find.ById("search-results"));

Then you parse through elem.Element

like image 184
Bolu Avatar answered Nov 13 '22 13:11

Bolu