我想找出用于访问标签标签中存在的单选按钮的XPath表达式,用于文本"文本存在"。
我尝试了以下内容:
"//[@id=\"radioButtonSymbol\" and //*[text()[contains(.,'text being searched')]]
以下是HTML的结构:
<div>
<label id="radioButtonSymbol" for="1"></label>
<span>
<span>
<span>
<span class="textPresent">
"text being searched"
</span>
</span>
</span>
</span>
<label id="radioButtonSymbol" for="2"></label>
<span>
<span>
<span>
<span class="textPresent">
"text not being searched"
</span>
</span>
</span>
</span>
</div>
任何人都可以更正XPath表达式吗?
答案 0 :(得分:1)
这是一个可能的XPath表达式:
//div/span[
.//span[
@class='textPresent' and contains(., 'text being searched')
]
]
/preceding-sibling::label[1][@id='radioButtonSymbol']
<强> xpathtester demo 强>
说明:
//div/span[....]
:在HTML文档中的任意位置找到div
元素,然后导航到包含....的子元素span
。.//span[@class='textPresent' and contains(., 'text being searched')]
:... span
元素其中class
属性值等于'textPresent'
且包含'text being searched'
/preceding-sibling::label[1][@id='radioButtonSymbol']
:然后从上面第一个项目符号中提到的外部span
返回最近的前一个兄弟label
,其中id
属性值等于'radioButtonSymbol'
答案 1 :(得分:0)
假设你的html结构是正确的(但是请注意,你发布的样本在你错过的时候会出现格式错误&#39;&#34;&#39;&#39;
这是你的xpath:
//label[@id="radioButtonSymbol"]/following::span[@class="textPresent"]/text()
返回:
"text being searched"