我有这个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']
没有结果。
感谢您的帮助。
答案 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
的输入。