Selenium-查找具有相同类名的多个元素

Selenium-查找具有相同类名的多个元素,selenium,Selenium,您好,我正在尝试查找具有相同类名的多个元素。元素的类名和主体结构相同,但文本、链接和图片不同 <div class="dc-content-right clearfix"> (parent) <div class="dc-item clearfix"> (child nodes) <div class="dc-item clearfix"> <div class="dc-item clearfix"> 因此,结果应

您好,我正在尝试查找具有相同类名的多个元素。元素的类名和主体结构相同,但文本、链接和图片不同

  <div class="dc-content-right clearfix"> (parent)
  <div class="dc-item clearfix">        (child nodes) 
  <div class="dc-item clearfix">
  <div class="dc-item clearfix">
因此,结果应该是从
divs
中提取的3个不同标题的列表。问题:结果是3个标题的列表,相同

AVG AntiVirus Free 2015
AVG AntiVirus Free 2015
AVG AntiVirus Free 2015
看起来我三次找到了相同的元素。有人知道问题出在哪里吗?谢谢

List List=driver.findElements(By.xpath(“.//*[@class='dc-item clearfix']///h2/a”);
    List<WebElement> list = driver.findElements(By.xpath(".//*[@class='dc-item clearfix']//h2/a"));
    for(WebElement el : list) {
       System.out.println(el.getText());
    }
for(WebElement el:list){ System.out.println(el.getText()); }
您也可以尝试:-

List<WebElement> list = driver.findElements(By.xpath(".//*[@class='dc-info']//a"));
    for(WebElement element : list) {
       System.out.println(element.getText());
    }
List List=driver.findElements(By.xpath(“.//*[@class='dc-info']///a”);
for(WebElement:list){
System.out.println(element.getText());
}

如果div标记不包含id或class,则如下所示

List elements=driver.findElements(By.xpath(“//div[contains(@style,'height:50px')]);
for(WebElement:elements){
System.out.println(element.getText());
}

谢谢,这将写入在子元素中可以找到的所有文本(链接、描述、标题…),我只想访问h2标记。是的,我误读了问题。我已经更新了xpath,新的xpath有效吗?是的,有效。非常感谢。但重点是。。是否可以先保存整个子元素。List List=driver.findElements(By.xpath(//div[@class='dc-item clearfix']);然后访问它的不同部分。类似于list.get(1.findElement)(By.xpath(“//h2/a”)).getText()。你知道这样的事情有可能吗?好吧,明白了。我不知道,但我认为这是可能的。尝试和错误是你能找到答案的唯一方法。这也是可能的。必须从该div元素的子标记中指定xpath。
AVG AntiVirus Free 2015
AVG AntiVirus Free 2015
AVG AntiVirus Free 2015
    List<WebElement> list = driver.findElements(By.xpath(".//*[@class='dc-item clearfix']//h2/a"));
    for(WebElement el : list) {
       System.out.println(el.getText());
    }
List<WebElement> list = driver.findElements(By.xpath(".//*[@class='dc-info']//a"));
    for(WebElement element : list) {
       System.out.println(element.getText());
    }