代码之家  ›  专栏  ›  技术社区  ›  firstpostcommenter

htmlUnit:检查htmlElement是否为htmlAnchor

  •  0
  • firstpostcommenter  · 技术社区  · 6 年前

    我有一个HTMLelement。

    htmlelement有时是一个表/单元/etc,有时是一个锚链接。

    如何检查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 回复  |  直到 6 年前
        1
  •  0
  •   DSantiagoBC Deniz Celebi    6 年前

    你可以使用 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!");
    }
    

    作为旁注,我建议使用simple String 级联:

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