Xpath to determine checkbox "checked" attribute in Selenium IDE

sakhunzai picture sakhunzai · Aug 1, 2012 · Viewed 35.3k times · Source

How to determine if a checkbox is check or not through xpath

Currently I am trying :

//input[@type='checkbox' and @checked='true')]

I have multiple checkboxes with same ids so I have to select the next checkbox which is not selected/checked.

Specifically I need this for Selenium IDE

Edit what I actually need is sth like :

|storeXpathCount | //input[@name='xyz' and @checked='checked'] | is_checked | 

if checkbox 'xyz' is checked , is_checked value should be 1 else 0

thanks

Answer

CuongHuyTo picture CuongHuyTo · Nov 19, 2012

The xpath

// Xpath, only works in certain situations
//input[@type='checkbox' and @checked='xyz']

only works if in the HTML source of the checkbox there is an attribute as follows

checked="xyz"

where the developer is free to replace "xyz" with anything: "true", "checked", "ischecked", ...

So if there is no such attribute, the above mentioned xpath does not work.

While waiting for more insight, you might consider using a CSS selector, which does not depend on such an attribute:

// CSS selector, for all checkboxes which are checked
input:checked[type='checkbox']

// CSS selector, for all checkboxes which are not checked
input:not(:checked)[type='checkbox']

Note that without

[type='checkbox']

you will be given also radios :-)