How to determine if a checkbox is check or not through xpath
Currently I am trying :
//input[@type=\'checkbox\' and @checked=\'true\')]
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 :-)
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..
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']
You can try these one:
//*[@type='radio'][@checked='checked']/
//*[@type='radio'][not(@checked='checked')]/
something like this may works:
//input[@checked='checked']/following-sibling::*[1][not(@checked='checked')]