HtmlUnit:检查HtmlElement是否为HtmlAnchor

时间:2019-01-09 12:26:29

标签: htmlunit

我有一个HtmlElement。

HtmlElement有时是一个表/单元格/等,有时是一个锚链接。

如何检查HtmlElement是否为HtmlAnchor?

我唯一想到的方法是将HtmlElement强制转换为HtmlAnchor,然后查看它是否导致ClassCastException。这不是一个好的编码标准,因为我有未使用的变量anchorLink

   final HtmlElement htmlElement = htmlPage.getFirstByXPath(String.format("//*[text()='%s']", "textName"));
   try {
     HtmlAnchor anchorLink = (HtmlAnchor) htmlElement;
     System.out.println("HtmlElement is an anchor link!");
   } catch (ClassCastException e) {
     System.out.println("HtmlElement is not an anchor link!");
   }

1 个答案:

答案 0 :(得分:0)

您可以使用instanceof运算符检查获得的元素是否为锚。 修改您的代码会导致类似

final HtmlElement htmlElement = htmlPage.getFirstByXPath(String.format("//*[text()='%s']", "textName"));

if (htmlElement instanceof HtmlAnchor) {
    System.out.println("HtmlElement is an anchor link!");
} else {
    System.out.println("HtmlElement is NOT an anchor link!");
}

作为旁注,我建议使用简单的String串联:

String text = "textName";
final HtmlElement htmlElement = htmlPage.getFirstByXPath("//*[text()=" + text + "]");