2016-04-28 9 views
0

Ich möchte auf einige Links nach einigen Abständen klicken und Xpath für sie ändern sich nur um ein Element.Ich möchte Xpath in for Schleife verwenden

Beispiel habe ich diese XPath für 8 Elemente

.//*[@id='nav']/li[2]/ul/li/div[2]/ul/li[1]/a 
    .//*[@id='nav']/li[2]/ul/li/div[2]/ul/li[2]/a 
    .//*[@id='nav']/li[2]/ul/li/div[2]/ul/li[3]/a 
    .//*[@id='nav']/li[2]/ul/li/div[2]/ul/li[4]/a 
    .//*[@id='nav']/li[2]/ul/li/div[2]/ul/li[5]/a 
    .//*[@id='nav']/li[2]/ul/li/div[2]/ul/li[6]/a 
    .//*[@id='nav']/li[2]/ul/li/div[2]/ul/li[7]/a 
    .//*[@id='nav']/li[2]/ul/li/div[2]/ul/li[8]/a 

hier nur li [n] Element verändert sich so habe ich unter Code versucht

for(int i=1;i<=8;i++) 
{ 
    System.out.println(i); 
    driver.findElement(By.xpath(
     ".//[@id='nav']/li[2]/ul/li/div[2]/ul/li["+i+"]/a" 
    )).click(); 
} 

Aber dieser Code funktioniert nicht. Wenn ich einige Informationen verpasst habe, lass es mich wissen.

+0

Tests in Betracht. Führen Sie eine Google-Suche nach "xpath tester" durch, um viele Tools zu finden, mit denen Sie überprüfen können, ob Ihr xpath-Ausdruck korrekt ist. – DwB

Antwort

0

Kleiner Tippfehler:

".//[@i... 

sollte

".//*[@i... 
+0

Versucht dies auch Sry, aber das funktioniert auch nicht driver.findElement (By.xpath (".//*[@ id = 'nav")/li [2]/ul/li/div [2]/ul/li ["+ i +"]/a ")). click(); – monil

+0

@monil stellen Sie dann ein Arbeitsbeispiel Ihres HTML zur Verfügung, das erlaubt, die Isuse zu reproduzieren – wero