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