2013-05-13 101 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

相關問題