The dependencies page lists all the jars that you will need to have in your classpath.
The class
Most unit testing will be done within a framework like JUnit so all the examples here will assume that we are using that.
In the first sample, we create the web client and have it load the homepage from the HtmlUnit website.
We then verify that this page has the correct title. Note that getPage() can return different types
of pages based on the content type of the returned data. In this case we are expecting a content
type of text/html so we cast the result to an
public void testHomePage() throws Exception {
final WebClient webClient = new WebClient();
final HtmlPage page = (HtmlPage) webClient.getPage("http://htmlunit.sourceforge.net");
assertEquals("HtmlUnit - Welcome to HtmlUnit", page.getTitleText());
}
Often you will want to simulate a specific browser. This is done by passing a
public void testHomePage() throws Exception {
final WebClient webClient = new WebClient(BrowserVersion.FIREFOX_2);
final HtmlPage page = (HtmlPage) webClient.getPage("http://htmlunit.sourceforge.net");
assertEquals("HtmlUnit - Welcome to HtmlUnit", page.getTitleText());
}
Specifying this BrowserVersion will change the user agent header that is sent up to the server and will change the behaviour of some of the JavaScript.
The last WebClient constructor allows you to specify proxy server information in those cases where you need to connect through one.
public void testHomePage() throws Exception {
final WebClient webClient = new WebClient(BrowserVersion.FIREFOX_2, "http://myproxyserver", 8000);
final HtmlPage page = (HtmlPage) webClient.getPage("http://htmlunit.sourceforge.net");
assertEquals("HtmlUnit - Welcome to HtmlUnit", page.getTitleText());
}
Specifying this BrowserVersion will change the user agent header that is sent up to the server and will change the behavior of some of the JavaScript.
Frequently we want to change values in a form and submit the form back to the server. The following example shows how you might do this.
public void testHomePage() throws Exception {
final WebClient webClient = new WebClient();
// Get the first page
final HtmlPage page1 = (HtmlPage) webClient.getPage("http://some_url");
// Get the form that we are dealing with and within that form,
// find the submit button and the field that we want to change.
final HtmlForm form = page1.getFormByName("myform");
final HtmlSubmitInput button = (HtmlSubmitInput) form.getInputByName("submitbutton");
final HtmlTextInput textField = (HtmlTextInput) form.getInputByName("userid");
// Change the value of the text field
textField.setValueAttribute("root");
// Now submit the form by clicking the button and get back the second page.
final HtmlPage page2 = (HtmlPage) button.click();
}