请找到下面的html代码段
每个<li>
元素都与一个类别名称相关联(用绿色矩形标记)。我想打印每个这样的类别名称,因此我使用以下代码
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());
}
但我输出为 20 15 14等。我应该在上面的代码中做些什么改变来获得所需的输出
答案 0 :(得分:1)
试试这个
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());
}
或
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 :(得分:1)
尝试以下:
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());
}
如果没有提供文字,请使用
ul#acct-category-list>li.accnt-filtr.active+li>a>i
作为cssSelector。