2016-09-07 10 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"はあなたが見つけた要素の属性ではありません。あなたは親要素でを使用して、それを検索したい場合は

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

:あなたがクラスを持つ要素を見つける必要がある場合は

where」その後、あなたの例によると、あなたはそれをあなたが別の要素を見つけたのと同じ方法を見つけることができますあなたの木はあなたのようなものを使用することができます:

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

ありがとうデニス、それは素晴らしいです。あなたの2番目の提案も大好きです。しかし、クラス内のdivのように '

08 Oct 2016
'のようなものはありますか? – Selrac

+0

@Selrac次に、cssSelectorまたはxPathを使用してその位置を特定します。 CssSelectorでは "div.di> div" –

+0

ありがとうDenis、あなたは星です。 – Selrac