Xpath根据以下文本选择输入无线电

时间:2014-05-31 16:58:23

标签: html xpath siblings

我有这个HTML代码:

<input type="radio" class="inputs-highlight" name="country"><h2>Russia</h2>
<input type="radio" class="inputs-highlight" name="country"><h2>USA</h2>
<input type="radio" class="inputs-highlight" name="country"><h2>Other</h2>

我试图选择文本等于&#34;其他&#34;的输入广播。

我尝试过:

 .//input[./@type = 'radio']/following::*[text() = "Other"]

但是这会返回H2元素而不是Input Radio元素。

用这个:

 //input[@type='radio' and following-sibling::text() = 'Other']

没有结果。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

来自@helderdarocha的解决方案仅适用,因为搜索文本位于&#34; h2&#34;标签。一个更灵活的解决方案,它不关心以下文本是如何打包的#34;将是:

//input[@type='radio'][following-sibling::node()[position() = 1 and normalize-space(.) = 'Other']]

http://jkotests.wordpress.com/2013/02/08/getting-a-checkbox-by-its-adjacent-text-node/

的帮助下

答案 1 :(得分:0)

您必须选择第一个事件:

//input[@type="radio"][following-sibling::*[1]/text()='Other']

因为在选定的Other之后确实存在包含input 的元素。上面的表达式仅选择 next 兄弟包含Other的输入。