2016-09-07 51 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