Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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

like image 743
chaitanya Avatar asked Jun 21 '11 23:06

chaitanya


1 Answers

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 
like image 197
Željko Filipin Avatar answered Nov 05 '22 08:11

Željko Filipin