根据xpath中的文本查找radiobutton

时间:2016-03-04 12:11:56

标签: html css xpath

我想找出用于访问标签标签中存在的单选按钮的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表达式吗?

2 个答案:

答案 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"