7

如何通过xpath确定复选框是否被选中

目前我正在尝试:

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

我有多个具有相同 ID 的复选框,因此我必须选择下一个未选中/选中的复选框。

具体来说,我需要 Selenium IDE

编辑 我真正需要的东西是这样的:

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

如果选中了复选框“xyz”,则 is_checked 值应为 1,否则为 0

谢谢

4

5 回答 5

13

xpath

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

仅当复选框的 HTML 源代码中有如下属性时才有效

checked="xyz"

开发人员可以自由地将“xyz”替换为任何内容:“true”、“checked”、“ischecked”……

所以如果没有这个属性,上面提到的xpath就不起作用了。

在等待更多见解时,您可能会考虑使用不依赖于此类属性的 CSS 选择器:

// 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']

请注意,没有

[type='checkbox']

您还将获得收音机:-)

于 2012-11-19T11:15:56.217 回答
4

在此处输入图像描述

stnewrecord是复选框的类。脚本将存储复选框的数量,并根据该循环将遵循。它将检查复选框是否被选中,如果没有,它将检查否则进入下一步。

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

这是复选框的 xpath。'i' 是位置,每次迭代都会增加。

让我知道它是否适合你..

于 2012-08-01T13:11:00.947 回答
3

但是,有一些解决方案不使用 css 类和选择器。

利用

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

或者

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

代替

//input[@type='checkbox' and @checked='xyz']
于 2012-11-25T19:37:26.317 回答
0

你可以试试这些:

//*[@type='radio'][@checked='checked']/
//*[@type='radio'][not(@checked='checked')]/
于 2013-09-16T16:49:17.073 回答
0

像这样的东西可能有效:

//input[@checked='checked']/following-sibling::*[1][not(@checked='checked')]
于 2012-08-01T12:30:02.300 回答