我有一个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!");
}
答案 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 + "]");