Selenium - 使用相同的类名定位多个元素

Zaw*_*awe 6 selenium

你好,我试图找到具有相同className的多个元素.className和元素的主体结构是相同的,但文本,链接和图片是不同的.

  <div class="dc-content-right clearfix"> (parent)
  <div class="dc-item clearfix">        (child nodes) 
  <div class="dc-item clearfix">
  <div class="dc-item clearfix">
Run Code Online (Sandbox Code Playgroud)

这些子元素中的每一个都看起来像这样:

<div class="dc-item clearfix">
  <div class="dc-icon">
  <div class="dc-info">
    <h2>
      <a href="http://www.avg.com/ww-en/free-antivirus-download">AVG AntiVirusFree 2015</a>
    </h2>
Run Code Online (Sandbox Code Playgroud)

每个子元素在H2标记中都有不同的文本.因此,一旦它是AVG AntiVirus Free 2015,那么它就是Internet Security ....等等.所以我想要做的是将所有元素保存到列表中,然后使用它们.首先,我将这些元素保存到WebElements列表中:

List <"WebElement"> list = driver.findElements(By.xpath("//div[@class='dc-item clearfix']"));
Run Code Online (Sandbox Code Playgroud)

之后我想迭代列表并为屏幕上的每个元素写入h2文本:

for(WebElement i:superDiv)
            {
                System.out.println(i.findElement(By.xpath("//h2/a")).getText());
            }
Run Code Online (Sandbox Code Playgroud)

所以结果应该是从中提取的3个不同标题的列表divs.的问题:结果是3个标题的这是列表一样!

AVG AntiVirus Free 2015
AVG AntiVirus Free 2015
AVG AntiVirus Free 2015
Run Code Online (Sandbox Code Playgroud)

看起来我找到了相同的元素3次.有谁知道可能是什么问题?谢谢

Cat*_*hal 5

    List<WebElement> list = driver.findElements(By.xpath(".//*[@class='dc-item clearfix']//h2/a"));
    for(WebElement el : list) {
       System.out.println(el.getText());
    }
Run Code Online (Sandbox Code Playgroud)