2016-09-07 29 views
0

我有一个html层次结构,我想从中提取一些信息。该HTML的层次结构如下:硒重复层次

<div class="span"> 
    <div class="da"> 
     <div class="db"> 
      <div class="dc"> 
       <ul class="ua" id="ua_id" > 
        <li class="la_id"> 
         <div class="de details"> 
          <div class="df"> 
           <div class="dg">          
            <span class="th"> 
             <p class="p4">p: 4</p></span> 
             <p class="where">Description</p> 
             <div class='dh'> 
              <div class='di'> 
               <div>08 Oct 2016</div> 
               <div class="dj">loc</div> 
              </div> 
             </div> 
            </div> 
           </div> 
        </li> 
        <li class="la_id"> 
         <div class="de details"> 
          <div class="df"> 
           <div class="dg">          
            <span class="th"> 
             <p class="p3 plus">p: 3 plus</p></span> 
             <p class="where">Description</p> 
             <div class='dh'> 
              <div class='di'> 
               <div>02 Oct 2016</div> 
               <div class="dj">loc</div> 
             </div> 
            </div> 
           </div> 
          </div> 
         </div> 
        </li> 
       </ul> 
      </div> 
     </div> 
    </div> 
</div> 

<li>标签被重复,我想提取里面

细节我尝试以下,但它不工作:

List<WebElement> details =driver.findElements(By.className("la_id")); 
for(WebElement e : details){ 
System.out.println(e.getAttribute("where")); 
} 

和我不知道如何得到如下的值:

<div class="dj">loc</div> 

可有人请给我一个提示

回答

1

在你的情况“where”不是你找到的元素的属性。

如果你需要找到类元素“where”,然后根据你的榜样,你可以找到它,你发现了另一种元素的方法相同:

List<WebElement> details =driver.findElements(By.className("where")); 
    for(WebElement e : details){ 
    System.out.println(e.getText()); 
} 

如果你想使用的父元素来定位它你的树你可以使用类似的东西:

List<WebElement> details =driver.findElements(By.cssSelector("li.la_id p.where")); 
+0

谢谢丹尼斯,那太棒了。我也爱你的第二个建议。但是像“

08 Oct 2016
”这样的班级里面的div呢? – Selrac

+0

@Selrac然后使用cssSelector或xPath来找到它。与CssSelector它将是“div.di> div” –

+0

谢谢丹尼斯,你是明星。 – Selrac