我有一个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/

10-14 12:43