我有一个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>
有人可以给我一个提示吗
最佳答案
在您的情况下,“ 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"));
关于java - 从重复的层次结构中抓取 Selenium ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39366990/