2017-09-13 40 views
-2

HTML代碼如何提取使用具有硒多類列表值在Java

<div id=""> 
    <div class="widthFull floatLEFT"> 
    <div class="class-left-first"> 
     <div class="txt-left"> 
     <ul class="FuelBullet bulletedArrow"> 
      <li><a href=""></a></li> 
      <li><a href=""></a></li> 
      <li><a href=""></a></li> 
      <li><a href=""></a></li> 
     </ul> 
    </div> 
    </div> 
    <div class="class-left"> 
    <div class="txt-left"> 
     <ul class="FuelBullet bulletedArrow"> 
     <li><a href=""></a></li> 
     <li><a href=""></a></li> 
     </ul> 
    </div> 
    </div> 
    <div class="class-left"> 
    <div class="txt-left"> 
     <ul class="FuelBullet bulletedArrow"> 
     <li><a href=""></a></li> 
     </ul> 
    </div> 
    </div> 
    </div> 
    <div class="widthFull floatLEFT"> 
    ....same as above ... 
    </div> 
    <div class="widthFull floatLEFT"> 
    ....same as above ... 
    </div> 
</div> 

我試過代碼。

WebElement ele= driver.findElement(By.id("CPH1_DisplayAllSupportedCities_PanelAllCities")); 
List<WebElement> ele1=ele.findElements(By.className("widthFull floatLEFT")); 

for(WebElement Element : ele1){ 
      List<WebElement> ele2=Element.findElements(By.className("txt-left")); 
     for(WebElement txt : ele2){ 
       List<WebElement> ele3=txt.findElements(By.className("FuelBullet bulletedArrow")); 
      for(WebElement list : ele3){ 
       List<WebElement> e1=list.findElements(By.tagName("li")); 
        for(WebElement link : e1){ 
        System.out.println(link.getAttribute("href")); 
        } 
       } 
      } 

我必須從上面的示例中提取href值的列表。我已經嘗試了上面的代碼,但它沒有爲我工作。

請幫忙.. !!!

+0

你可以分享你在這裏訪問的元素的截圖或html。 – nullpointer

+0

是的,我也鏈接我的html內容和上面的代碼 – elakiya

+0

只需將所有的值添加到'清單 hrefValues'而不是你在做什麼'System.out.println(link.getAttribute(「href」)); ' – nullpointer

回答

-1

這裏的問題是,By.className一次只接受一個類名。我們不能使用By.className(「widthFull floatLEFT」)。 我們可以使用一個類名稱,如By.className("widthFull")By.className("floatLEFT")

如果你想同時使用兩個類名,那麼你可以使用其他類型的定位器,如下面給出的CSS選擇器或xpath。

WebElement ele= driver.findElement(By.id("CPH1_DisplayAllSupportedCities_PanelAllCities")); 
List<WebElement> ele1=ele.findElements(By.cssSelector(".widthFull.floatLEFT")); 

for(WebElement Element : ele1){ 
     List<WebElement> ele2=Element.findElements(By.className("txt-left")); 
     for(WebElement txt : ele2){ 
      List<WebElement> ele3=txt.findElements(By.cssSelector(".FuelBullet.bulletedArrow")); 
      for(WebElement list : ele3){ 
       List<WebElement> e1=list.findElements(By.tagName("li")); 
       for(WebElement link : e1){ 
        System.out.println(link.getAttribute("href")); 
       } 
      } 
     } 
    } 
相關問題