我有HTML,看起来基本上像下面的
.........
<span class="cat-name">Tanzanite Pendant</span>
..........
还有六个具有相同类名的跨度。我想仅找到上面的跨度。
我尝试了很多解决方案但未能找到该元素。
谢谢, 维诺德
答案 0 :(得分:2)
根据您提供的内容,
xpath = //span[@class='cat-name'][n]
其中n
可以给出1到6的值,它们定位相应的元素。
或
xpath = //span[contains(.,'Tanzanite Pendant')]
答案 1 :(得分:0)
在上面的表达
中xpath = //span[@class='cat-name'][n]
xpath = //span[@class='cat-name'][6]
[]的优先级高于//.
上面的表达式用@ class ='cat-name'选择每个输入元素,这是其父级的第6个子元素 - 显然文档中未显示的输入元素的父元素没有这么多输入孩子。
使用(注意括号):
xpath = (//span[@class='cat-name'])[6]
这将选择满足谓词条件的文档中的第6个元素输入。
所以你可以在下面使用所有六个位置:在你的问题中只使用第一个,它将起作用:
xpath = (//span[@class='cat-name'])[1]
xpath = (//span[@class='cat-name'])[2]
xpath = (//span[@class='cat-name'])[3]
xpath = (//span[@class='cat-name'])[4]
xpath = (//span[@class='cat-name'])[5]
xpath = (//span[@class='cat-name'])[6]