Xpath to determine checkbox "checked" attribute in Selenium IDE

40,662

Solution 1

enter image description here

Here stnewrecord is class of check-box. Script will store number of check-box, and according to that loop will follow. It will check whether check-box is checked or not if not it will check else move to next step.

xpath=(//input[@class='stnewrecord'])[${i}]  

This is xpath of check-box. 'i' is position, it will increase on each iteration.

Let me know whether its working for you or not..

Solution 2

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 :-)

Solution 3

However, there are solution without using css classes and selectors.

Use

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

or

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

instead of

//input[@type='checkbox' and @checked='xyz']
Share:
40,662
sakhunzai
Author by

sakhunzai

SOreadytohelp

Updated on July 09, 2022

Comments

  • sakhunzai
    sakhunzai almost 2 years

    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