我试图使用htmllunitdriver获得html标签的html内容。我写的代码是:
WebElement table_element = wd.findElement(By.id("genericTableFormtable"));
String str=table_element.getAttribute("outerHTML");
int index=str.indexOf("active");
如果我使用ChromeDriver,那么我得到str中的代码,但如果我使用HtmlUnitDriver,那么我在进一步的代码中得到一个异常,因为str为空。请告诉我为什么会这样
尝试用innerHTML代替outerHTML
WebElement table_element = wd.findElement(By.id("genericTableFormtable"));
String str=table_element.getAttribute("innerHTML");
int index=str.indexOf("active");
同样,如果active是一个属性,只需使用getAttribute获取它。要检查链接是否包含活动属性,您可以这样做:
List<WebElement> table_links = wd.findElement(By.tagName("a"));
foreach(WebElement table_link in table_links){
if(table_link.getAttribute("active") != null){
// this link is active
}
}
或者只使用indexof:
List<WebElement> table_links = wd.findElement(By.tagName("a"));
foreach(WebElement table_link in table_links){
if(table_link.getAttribute("innerHTML").indexOf("active") > -1){
// this link is active
}
}