如何使用Selenium提取xml:lang值

时间:2016-01-04 07:12:31

标签: java html selenium

我有HTML标签:

html xmlns = " http://www.w3.org/1999/xhtml "  xml:lang=' en-US '  lang='en-US '

通过使用selenium我获得了lang属性的值,但是在检索xml:lang的值为null时。

htmlTag.getAttribute("lang"); //en-US
htmlTag.getAttribute("xml:lang"); //null

有谁知道如何获得xml:lang的价值?

1 个答案:

答案 0 :(得分:0)

如果此属性显示并返回null(如果它不存在),它应该有效。如名称所示,此属性为XML文档提供指令,您不会在大多数网站中找到它(例如stackoverflow,google,facebook)。 通常,您应该以与其他属性相同的方式检索它,例如:

String xmlLang = driver.findElement(By.tagName("html")).getAttribute("xml:lang");

您可以使用以下方法检查属性是否存在:

private static boolean attributeExists(WebElement elem, String attr) {
    return elem.getAttribute(attr) != null;
}

请注意,对于HTML网页,Selenium不会为缺少的null属性返回lang,但会返回空的String。例如,在我撰写此帖时,StackOverflow.com未在其提供的html源中包含langxml:lang

但是,Selenium将为null返回xml:lang,为String返回空lang;因此,作为假阳性案例,上述方法attributeExists将返回true以查找不存在的lang属性。