我在HtmlUnit面临的问题上获得了一些帮助。
我需要做的是登录我的应用程序,转到主页并在我的主页上获取所有链接,文本字段,按钮等的列表。
我尝试编码,这就是我能做的。
现在这就是我无法做到的事情。
单击“确定”后,基础主页将被取消屏蔽,但我的HtmlPage对象为空(非空)。
以下是我的代码。
import java.io.IOException;
import java.net.MalformedURLException;
import com.gargoylesoftware.htmlunit.Page;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.WebResponse;
import com.gargoylesoftware.htmlunit.html.HtmlButton;
import com.gargoylesoftware.htmlunit.html.HtmlButtonInput;
import com.gargoylesoftware.htmlunit.html.HtmlForm;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput;
public class HTMLUnitSample {
public static void main(String args[]){
final WebClient webClient = new WebClient();
webClient.getOptions().setJavaScriptEnabled(true);
webClient.getCookieManager().setCookiesEnabled(true);
webClient.getOptions().setThrowExceptionOnScriptError(false);
webClient.getOptions().setPopupBlockerEnabled(false);
try{
//Get the first page
final HtmlPage loginPage = webClient.getPage("http://****:****/****/****");
//Fill up the login form
loginPage.getElementById("USERID").setAttribute("value", "****");
loginPage.getElementById("user_pwd").setAttribute("value","****");
final HtmlForm loginForm = loginPage.getFormByName("frmLogin");
HtmlSubmitInput button = loginForm.getInputByName("submit");
HtmlPage homePage = button.click();
/*
System.out.println("Body - " + homePage.getBody().asText());
System.out.println("No. of Frames in Home Page - " + Inte ger.toString(homePage.getFrames().size()));
System.out.println("Total no. of elements on Home Page - " + Integer.toString(homePage.getElementsByTagName("*").size()));*/
//Click the OK button
HtmlButtonInput okButton = (HtmlButtonInput)homePage.getElementByName("Ok");
HtmlPage homePage2 = okButton.click();
System.out.println(homePage2.asText());
System.out.println("Done");
}
catch(MalformedURLException e){
e.printStackTrace();
}
catch(IOException e){
e.printStackTrace();
}
}
}
我得到的输出
System.out.println(homePage2.asText());
只是一个空字符串。
我甚至尝试过
homePage2.getElementsByTagName("*");
但徒劳无功。
我需要的是在单击OK后在主页上实际找到元素。 请帮我。非常感谢任何一点帮助。