我无法弄清楚以下的XPATH。还有其他几个具有相似属性的元素(包括ID,但它不是我的页面),并且确保选择正确元素的唯一方法是通过其相邻标签“版权”获取它。这是HTML:
<div class="row">
<div class="label">Copyright :</div>
<div id="container-id" class="field" >2011 Homeland Ent</div>
</div>
<div class="row">
<div class="label">Another Label :</div>
<div id="container-id" class="field" >Another Entry</div>
</div>
请注意,由于格式错误的HTML,//*[@id="container-id"]
在这里还不够。获取文本“2011 Homeland Ent”的正确XPATH是什么?
答案 0 :(得分:3)
也许这样的事情(我不确定“版权”文本是否是搜索的一部分,无论如何都包含它
//*[@class="label" and starts-with(., "Copyright")]/following-sibling::*[@id="container-id"]
答案 1 :(得分:2)
看起来每个row
包含一个label
/ field
对。如果这是真的,则可以使用更短,更简单的表达式(不需要following-sibling
):
//*[div[@class='label' and starts-with(., 'Copyright')]]/div[@id='container-id']
答案 2 :(得分:0)
使用此xpath,它将起作用
//div[text()="Copyright :"]/parent::node()/div[@id="container-id"]/text()