Xpath to determine checkbox “checked” attribute in Selenium IDE

前端 未结 5 740
无人及你
无人及你 2021-01-12 21:45

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

Currently I am trying :

//input[@type=\'checkbox\' and @checked=\'true\')]
相关标签:
5条回答
  • 2021-01-12 22:00

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

    0 讨论(0)
  • 2021-01-12 22:12

    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..

    0 讨论(0)
  • 2021-01-12 22:12

    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']
    
    0 讨论(0)
  • 2021-01-12 22:19

    You can try these one:

    //*[@type='radio'][@checked='checked']/
    //*[@type='radio'][not(@checked='checked')]/
    
    0 讨论(0)
  • 2021-01-12 22:25

    something like this may works:

    //input[@checked='checked']/following-sibling::*[1][not(@checked='checked')]
    
    0 讨论(0)
提交回复
热议问题