为selenium自动化定义以下html的xpath

时间:2014-02-18 07:12:06

标签: selenium xpath

我有HTML,看起来基本上像下面的

  .........

<span class="cat-name">Tanzanite Pendant</span>

  ..........

还有六个具有相同类名的跨度。我想仅找到上面的跨度。

我尝试了很多解决方案但未能找到该元素。

谢谢, 维诺德

2 个答案:

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