How to get the number of elements having same attribute in HTML in Watir?

chaitanya picture chaitanya · Jun 22, 2011 · Viewed 9.7k times · Source

I have a HTML document which contains elements having the same class name. I could just do an iteration over all the elements in a page and store with elements with a class name in a list. Is there a better way in Watir to get a count of all the HTML elements having the same class name? This question Count of Elements with same attribute in XML kind of addresses the issue, but I had two queries related to that

  1. What if the HTML document is not a strict XHTML document?
  2. What happens if different types of HTML elements have the same class?

Sample HTML files could be:

Elements of the same type having same class name

<input type="password" class="foo" /> 
<input type="text" class="foo" />

Elements of different types having same class name

<input type="password" class="foo" /> 
<span class="foo"></span>
<a href='1' class="foo">Text</a>

Thanks in advance, guys

Answer

Željko Filipin picture Željko Filipin · Jun 22, 2011

If you are using watir-webdriver gem:

1)

HTML

<input type="password" class="foo" /> 
<input type="text" class="foo" />

Watir

browser.elements(:class => "foo").size
# => 2 

2)

HTML

<input type="password" class="foo" /> 
<span class="foo"></span>
<a href='1' class="foo">Text</a>

Watir

browser.elements(:class => "foo").size
# => 3