我有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
的价值?
答案 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源中包含lang
和xml:lang
。
但是,Selenium将为null
返回xml:lang
,为String
返回空lang
;因此,作为假阳性案例,上述方法attributeExists
将返回true
以查找不存在的lang
属性。