如何使用SeleniumJava循环遍历div中的每个元素?

如何使用SeleniumJava循环遍历div中的每个元素?,java,selenium-webdriver,Java,Selenium Webdriver,我正在尝试遍历div中的所有元素。我如何才能做到这一点 到目前为止,我已经尝试了如下,但它不工作。我希望它必须打印container_类中的所有元素,但打印方式如下“[[[FirefoxDriver:firefox on XP(d3434gfe-d431-4e51-e6rt-a3asewc7806f)]->xpath:id(“divs_container_类”)]” 我想打印所有元素,我做错了什么 HTML: 爪哇(硒): List elementsxpath=driver.findElem

我正在尝试遍历div中的所有元素。我如何才能做到这一点

到目前为止,我已经尝试了如下,但它不工作。我希望它必须打印container_类中的所有元素,但打印方式如下“[[[FirefoxDriver:firefox on XP(d3434gfe-d431-4e51-e6rt-a3asewc7806f)]->xpath:id(“divs_container_类”)]”

我想打印所有元素,我做错了什么

HTML:


爪哇(硒):

List elementsxpath=driver.findElements(By.xpath(“id(\'divs\u container\u class'));

对于(inti=0;i如果您发布的html正文有效,您可以使用以下代码进行尝试

 List<WebElement> elements = driver.findElements(By.cssSelector("#container_id > div"));
 for (WebElement element : elements) {
    System.out.println(element.getText());  
 }
List elements=driver.findElements(By.cssSelector(“#container_id>div”);
for(WebElement:elements){
System.out.println(element.getText());
}

代码到底应该打印什么?您的代码工作正常-它打印WebElement对象本身,这只是远程web浏览器中元素的一种句柄。您想打印它的HTML代码吗?还是它的文本体?哦,顺便问一下-您的XPath似乎无效,至少在这里的示例中是这样。您应该使用匹配所有元素的XPath子元素,而不是父元素(末尾带有
/div
/*
的元素),我想循环遍历容器类中的所有元素并找到元素的背景色。因此,如果任何元素的颜色为蓝色,请单击它。@sarbusandeep使用getCssValue(“背景色”)。使用CSS选择器,
#container_id>div
会更有效。您可以在单个定位器中获取内部div,而无需刮页面两次。删除第一行,并将第二行替换为
List links=driver.findElements(By.cssSelector(“#container_id>div”))
@JeffC谢谢。我知道这一点,但我发布这两步代码只是为了理解获取特定元素的分层步骤。
List<WebElement> elementsxpath = driver.findElements(By.xpath("id(\"divs_container_class\")"));
for(int i=0; i<elementsxpath .size(); i++) {
    System.out.println(elementsxpath);
}
 List<WebElement> elements = driver.findElements(By.cssSelector("#container_id > div"));
 for (WebElement element : elements) {
    System.out.println(element.getText());  
 }