2013-05-13 255 views
6

我有一个结构:如何通过xpath获取元素的索引?

<div id='list'> 
    <div class='column'>aaa</div> 
    <div class='column'>bbb</div> 
    ... 
    <div class='column'>jjj</div> 
</div> 

我不知道是否有使用XPath,并写一些查询的方式是我可以在“名单”元素中获取所请求的元素的索引。

我的意思是我会问的class='column'位置,其中文本值是aaa,我会得到01 ...

感谢

+0

见一个好的和简单的教程,如http://www.w3schools.com/xpath/xpath_functions.asp。 – user1929959 2013-05-13 10:06:39

回答

2

可以count前面的兄弟姐妹:

count(//div[@id="list"]/div[@id="3"]/preceding-sibling::*) 
5

您可以只计算您正在寻找的元素前面的div元素:

count(div[@id = 'list']/div[@id = 'myid']/preceding-sibling::div) 
0

你可以指望有多少“前面的兄弟姐妹”,同时也是一流的“列”中,通过使用此XPath:

//div[@class='column' and text()='jjj']/preceding-sibling::div[@class='column'] 
2

硒的方法来评估的位置:

 
int position = driver.findElements(By.xpath("//div[@class='column' and text()='jjj']/preceding-sibling::div[@class='column']")).size() + 1; 
System.out.println(position); 
+0

没有得到它......大小将始终返回与xpath匹配的元素总数,然后向其中添加一个元素。它如何允许获取该元素在dom中的位置。 – Deep 2015-08-05 06:35:47

相关问题