Java 获取HTML标记时出错';使用HtmlUnitDriver更新内容

Java 获取HTML标记时出错';使用HtmlUnitDriver更新内容,java,selenium-chromedriver,htmlunit-driver,Java,Selenium Chromedriver,Htmlunit Driver,我正在尝试使用HtmlUnitDriver获取html标记的html内容。我写的代码是: WebElement table_element = wd.findElement(By.id("genericTableFormtable")); String str=table_element.getAttribute("outerHTML"); int index=str.indexOf("active"); 如果我使用ChromeDriver,那么我会在str中得到代码,但是如果我使用HtmlU

我正在尝试使用HtmlUnitDriver获取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为null。请说明发生这种情况的原因

尝试使用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
    }
}
List table_links=wd.findElement(按.tagName(“a”));
foreach(表链接中的WebElement表链接){
if(table_link.getAttribute(“活动”)!=null){
//此链接处于活动状态
}
}
或者只使用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
    }
}
List table_links=wd.findElement(按.tagName(“a”));
foreach(表链接中的WebElement表链接){
if(表_link.getAttribute(“innerHTML”).indexOf(“active”)>-1){
//此链接处于活动状态
}
}

我怀疑在使用渲染引擎HtmlUnitDriver时没有属性outerHTML。为什么需要outerHTML?我需要一部分html代码,这就是我使用outerHTML的原因。请在您的问题中添加您需要的字符串的确切部分。我在我的问题中添加了一行新代码。看,我应该从我的前两行中获取表的html代码,然后我只需要检查代码中是否有活动关键字。这就是为什么我需要它的html代码我正在使用HtmlUnitDriver。String str=table_element.getAttribute(“innerHTML”);我正在使用HtmlUnitDriver。String str=table_element.getAttribute(“innerHTML”)。在执行这一行之后,str是nullDebug,并查看哪些属性在table_元素中。为什么我需要检查属性。你没有明白我的意思。请看表的html代码是这样的。为什么我需要检查属性。你没有明白我的意思。请看表的html代码是这样的。我希望所有这些html都包含在方法返回的字符串中。如果我使用chromedriver,那么我会用我写的代码得到它,但是如果我使用HtmlUnitDriver,那么我会在字符串中得到null