2016-05-06 19 views
0

Das folgende HTML-Code-Snippet finden Sie unter Code snippet Jedes <li> Element ist einem Kategorienamen zugeordnet (mit grünem Rechteck markiert). Ich möchte jede dieser Kategorienamen drucken und daher verwende ich den folgenden CodeListe der Listenelemente mit Selen

numberOfFilterCategories=driver.findElements(By.xpath(".//*[@id='acct-category-list']")).size(); 
for(int i=1;i<=numberOfFilterCategories;i++){ 
     System.out.println(driver.findElement(By.xpath(".//*[@id='acct-category-list']/li["+i+"]/a")).getText()); 
} 

Aber ich bekomme Ausgabe als 14 usw. Welche Änderungen sollte ich in obigen Code tun gewünscht zu erhalten Ausgabe

Antwort

1

Versuchen Sie, diese

for(int i=1;i<numberOfFilterCategories;i++){ 
    System.out.println(driver.findElement(By.xpath(".//*[@id='acct-category-list']")) 
     .findElements(By.tagName("li")).get(i) 
     .findElement(By.tagName("a")).getText()); 
} 

oder

for(int i=1;i<numberOfFilterCategories;i++){ 
    System.out.println(driver.findElement(By.id("acct-category-list")) 
     .findElements(By.tagName("li")).get(i) 
     .findElement(By.tagName("a")).getText()); 
} 
1

versuchen unter:

List<WebElement> elems = driver.findElements(By.cssSelector("ul#acct-category-list>li.accnt-filtr.active+li>a")); 

for(WebElement element: elems){ 
    System.out.println("text is "+element.getText()); 
} 

wenn dies nicht den Text nicht geben,

ul#acct-category-list>li.accnt-filtr.active+li>a>i 

als cssSelector verwenden.

Verwandte Themen