2013-05-13 11 views
6

mam kolejną strukturę:Jak uzyskać indeks elementu przez xpath?

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

byłem dziwnego, jeśli istnieje sposoby korzystania z XPath oraz napisać zapytanie byli mogę uzyskać indeks żądanego elementu w „liście” elementu.

To znaczy, że będę prosić o lokalizacji class='column' gdzie wartość tekst jest aaa i dostanę 0 lub 1 ...

Dzięki

+0

Zobacz dobry i prosty samouczek, taki jak http://www.w3schools.com/xpath/xpath_functions.asp. – user1929959

Odpowiedz

2

Można count powyższe rodzeństwa:

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

Można po prostu policzyć elementy div poprzedzające element, którego szukasz:

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

można policzyć ile „poprzedzający rodzeństwo”, które są również klasy „kolumny”, za pomocą tego XPath:

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

selen sposób ocenić stanowisko:

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

Nie udało się ... Rozmiar zawsze zwróci całkowitą liczbę elementów pasujących do ścieżki xpath, a następnie doda do niej jeden. Jak pozwala na pobieranie pozycji tego elementu w domenie. – Deep

Powiązane problemy