java - 如何获取显示器下的元素:none div using htmlunit

标签 java xpath htmlunit

使用 HtmlUnit,我应该如何抓取隐藏 div 下的元素(style=“display:none”)?

在本例中,我试图获取表中显示的字段的值。第一个单元格是字段名称,第二个单元格是值。我正在使用“for”属性来查找关联值。

HTML:

<div style="display: none;" id="tab-doc-div">
<div class="tab-container" align="center">
    <table class="datatable">
        <tbody>
            <tr>
                <th rowspan="1" colspan="1">
                    &nbsp;<label for="doc.change.stat">
                    <font color="">*&nbsp;</font>Action</label>
                </th>
                <td colspan="2">
                    Data Change (DTA)
                </td>
            </tr>
        </tbody>
    </table>
</div>

我正在使用的 Java/HtmlUnit 代码:

public static String getTextForProperty(HtmlPage page, String property) throws Exception {
    List<HtmlLabel> labels = (List<HtmlLabel>)page.getByXPath("//label[@for='" + property + "']");

    if (labels.isEmpty()) {
        return null;
    } else {
        return labels.get(0).getParentNode().getNextSibling().asText();
    }
}
String myValue = getTextForProperty(myPageObject, "doc.change.stat"); //returns null

最佳答案

鉴于您的示例 HTML 文件以及您对其他答案的评论:

In my example I want to get the "Data Change (DTA)" as the result

这就是您所需要的:

HtmlTableCell td = page.<HtmlTableCell>
                     getFirstByXPath("//label[@for='doc.change.stat']/../../td");
System.out.println(td.getTextContent().trim());

关于java - 如何获取显示器下的元素:none div using htmlunit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11233507/

相关文章:

c# - 构建 XDocument 时出错

python - NoSuchElementException : Message: Unable to locate element while trying to locate an element using Selenium and Python

java - 如何将 cookie 添加到 HtmlUnit 请求 header ?

java - HtmlUnit 在网站上找不到表单

java - Android 上的 HtmlUnit : Dependencies

java - Primefaces 链接打开电子邮件撰写窗口

java - 如何将 32 位 int 移位 32(再次)

vba - 有条件地检查 VBA 中的 XPath 是否正确

java - 在android中更改静态字符串变量时更改textview

java - 如何使现有的maven父项目成为新创建的maven项目的子项目