下面列出了怎么用org.openqa.selenium.htmlunit.HtmlUnitDriver的API类实例代码及写法,或者点击链接到github查看源代码。
/**
* Verifies getVisibleText().
* @throws Exception if the test fails
*/
@Test
@Alerts("")
public void getVisibleText() throws Exception {
final String htmlContent
= "<html>\n"
+ "<head></head>\n"
+ "<body>\n"
+ "<form id='form1'>\n"
+ " <input type='text' name='tester' id='tester' value='bla'>\n"
+ "</form>\n"
+ "</body></html>";
final WebDriver driver = loadPage2(htmlContent);
final String text = driver.findElement(By.id("tester")).getText();
assertEquals(getExpectedAlerts()[0], text);
if (driver instanceof HtmlUnitDriver) {
final HtmlPage page = (HtmlPage) getWebWindowOf((HtmlUnitDriver) driver).getEnclosedPage();
assertEquals(getExpectedAlerts()[0], page.getBody().getVisibleText());
}
}
/**
* @throws Exception if the test fails
*/
@Test
@Alerts("[object SVGGElement]")
public void simpleScriptable() throws Exception {
final String html = HtmlPageTest.STANDARDS_MODE_PREFIX_
+ "<html><head>\n"
+ "<script>\n"
+ " function test() {\n"
+ " alert(document.getElementById('myId'));\n"
+ " }\n"
+ "</script>\n"
+ "</head><body onload='test()'>\n"
+ " <svg xmlns='http://www.w3.org/2000/svg' version='1.1'>\n"
+ " <g id='myId'/>\n"
+ " </svg>\n"
+ "</body></html>";
final WebDriver driver = loadPageWithAlerts2(html);
if (driver instanceof HtmlUnitDriver) {
final HtmlPage page = (HtmlPage) getWebWindowOf((HtmlUnitDriver) driver).getEnclosedPage();
assertTrue(SvgGroup.class.isInstance(page.getElementById("myId")));
}
}
/**
* @throws Exception if the test fails
*/
@Test
@Alerts(DEFAULT = "[object HTMLUnknownElement]",
IE = "[object HTMLBGSoundElement]")
public void simpleScriptable() throws Exception {
final String html = HtmlPageTest.STANDARDS_MODE_PREFIX_ + "<html><head>\n"
+ "<script>\n"
+ " function test() {\n"
+ " alert(document.getElementById('myId'));\n"
+ " }\n"
+ "</script>\n"
+ "</head><body onload='test()'>\n"
+ " <bgsound id='myId'/>\n"
+ "</body></html>";
final WebDriver driver = loadPageWithAlerts2(html);
if (driver instanceof HtmlUnitDriver && getExpectedAlerts()[0].contains("Sound")) {
assertTrue(HtmlBackgroundSound.class.isInstance(toHtmlElement(driver.findElement(By.id("myId")))));
}
}
/**
* @throws Exception if an error occurs
*/
@Test
@Alerts("success")
public void onErrorModifyObject() throws Exception {
final String html
= "<html>\n"
+ "<script>\n"
+ " window.onerror = function(messageOrEvent, source, lineno, colno, error) {\n"
+ " error.property = 'success'\n"
+ " alert(error.property);\n"
+ " };\n"
+ "</script>\n"
+ "<script>throw {};</script>\n"
+ "</html>";
if (getWebDriver() instanceof HtmlUnitDriver) {
getWebWindowOf((HtmlUnitDriver) getWebDriver()).getWebClient()
.getOptions().setThrowExceptionOnScriptError(false);
}
loadPageWithAlerts2(html);
}
/**
* @throws Exception if the test fails
*/
@Test
public void getLabeledElementForProgress() throws Exception {
final String html = "<html>\n"
+ "<body>\n"
+ " <label id='label1' for='progress1'>Item</label>\n"
+ " <progress id='progress1'></progress>\n"
+ "</body></html>";
final WebDriver driver = loadPage2(html);
if (driver instanceof HtmlUnitDriver) {
final HtmlPage page = (HtmlPage) getWebWindowOf((HtmlUnitDriver) driver).getEnclosedPage();
final HtmlLabel label = page.getHtmlElementById("label1");
assertEquals("progress1", label.getLabeledElement().getId());
}
}
private void getVisibleTextWhiteSpaceOrderedList(final String whiteSpace) throws Exception {
final String htmlContent
= "<html>\n"
+ "<head></head>\n"
+ "<body>\n"
+ " <ol id='tester' " + (whiteSpace == null ? "" : ("style='white-space: " + whiteSpace + "'")) + ">\n"
+ " <li>first item</li>\n"
+ " <li> A B C\t \t D \r\nEF\nG \n H <br> I </li>\n"
+ " <li>third item</li><li>4. item</li>\n"
+ " some text \n"
+ " <li>last item</li>\n"
+ " </ol>\n"
+ "</body></html>";
final WebDriver driver = loadPage2(htmlContent);
final String text = driver.findElement(By.id("tester")).getText();
assertEquals(getExpectedAlerts()[0], text);
if (driver instanceof HtmlUnitDriver) {
final HtmlPage page = (HtmlPage) getWebWindowOf((HtmlUnitDriver) driver).getEnclosedPage();
assertEquals(getExpectedAlerts()[0], page.getElementById("tester").getVisibleText());
}
}
/**
* @throws Exception if the test fails
*/
@Test
public void getLabeledElementForNotLabelable() throws Exception {
final String html = "<html>\n"
+ "<body>\n"
+ " <label id='label1' for='div1'>Item</label>\n"
+ " <div id='div1'></div>\n"
+ "</body></html>";
final WebDriver driver = loadPage2(html);
if (driver instanceof HtmlUnitDriver) {
final HtmlPage page = (HtmlPage) getWebWindowOf((HtmlUnitDriver) driver).getEnclosedPage();
final HtmlLabel label = page.getHtmlElementById("label1");
assertNull(label.getLabeledElement());
}
}
public String takeScreenShot(String name) throws IOException {
if (driver instanceof HtmlUnitDriver) {
oLog.fatal("HtmlUnitDriver Cannot take the ScreenShot");
return "";
}
File destDir = new File(ResourceHelper.getResourcePath("screenshots/")
+ DateTimeHelper.getCurrentDate());
if (!destDir.exists())
destDir.mkdir();
File destPath = new File(destDir.getAbsolutePath()
+ System.getProperty("file.separator") + name + ".jpg");
try {
FileUtils
.copyFile(((TakesScreenshot) driver)
.getScreenshotAs(OutputType.FILE), destPath);
} catch (IOException e) {
oLog.error(e);
throw e;
}
oLog.info(destPath.getAbsolutePath());
return destPath.getAbsolutePath();
}
/**
* @throws Exception if the test fails
*/
@Test
@Alerts("[object HTMLHtmlElement]")
public void simpleScriptable() throws Exception {
final String html = "<html id='myId'><head><title>foo</title><script>\n"
+ " function test() {\n"
+ " alert(document.getElementById('myId'));\n"
+ " }\n"
+ "</script></head><body onload='test()'>\n"
+ "</body></html>";
final WebDriver driver = loadPageWithAlerts2(html);
if (driver instanceof HtmlUnitDriver) {
final WebElement element = driver.findElement(By.id("myId"));
assertTrue(toHtmlElement(element) instanceof HtmlHtml);
}
}
/**
* @throws Exception if the test fails
*/
@Test
@Alerts("")
public void getVisibleTextAndVisibility() throws Exception {
final String html
= "<html><head></head><body>\n"
+ "<form id='form1'>\n"
+ "<textarea id='tester' style='visibility:hidden'> foo \n bar "
+ "</textarea>\n"
+ "</form></body></html>";
final WebDriver driver = loadPage2(html);
final WebElement textArea = driver.findElement(By.id("tester"));
assertEquals(getExpectedAlerts()[0], textArea.getText());
if (driver instanceof HtmlUnitDriver) {
final HtmlPage page = (HtmlPage) getWebWindowOf((HtmlUnitDriver) driver).getEnclosedPage();
assertEquals(getExpectedAlerts()[0], page.getElementById("tester").getVisibleText());
}
}
/**
* @throws Exception if the test fails
*/
@Test
@Alerts("[object HTMLEmbedElement]")
public void saveAs() throws Exception {
final String html = "<html><head>\n"
+ "<script>\n"
+ " function test() {\n"
+ " alert(document.getElementById('myId'));\n"
+ " }\n"
+ "</script>\n"
+ "</head><body onload='test()'>\n"
+ " <embed id='myId' src='helloworld.bin'/>\n"
+ "</body></html>";
getMockWebConnection().setDefaultResponse("something");
final WebDriver driver = loadPageWithAlerts2(html);
if (driver instanceof HtmlUnitDriver) {
final HtmlEmbed element = (HtmlEmbed) toHtmlElement(driver.findElement(By.id("myId")));
final File file = new File(System.getProperty("user.home"), "htmlunit-embed.bin");
element.saveAs(file);
final long length = file.length();
assertTrue(file.delete());
assertTrue(length > 0);
}
}
/**
* @throws Exception if the test fails
*/
@Test
@Alerts("[object SVGFEDiffuseLightingElement]")
public void simpleScriptable() throws Exception {
final String html = HtmlPageTest.STANDARDS_MODE_PREFIX_
+ "<html><head>\n"
+ "<script>\n"
+ " function test() {\n"
+ " alert(document.getElementById('myId'));\n"
+ " }\n"
+ "</script>\n"
+ "</head><body onload='test()'>\n"
+ " <svg xmlns='http://www.w3.org/2000/svg' version='1.1'>\n"
+ " <feDiffuseLighting id='myId'/>\n"
+ " </svg>\n"
+ "</body></html>";
final WebDriver driver = loadPageWithAlerts2(html);
if (driver instanceof HtmlUnitDriver) {
final HtmlPage page = (HtmlPage) getWebWindowOf((HtmlUnitDriver) driver).getEnclosedPage();
assertTrue(SvgFeDiffuseLighting.class.isInstance(page.getElementById("myId")));
}
}
/**
* @throws Exception if the test fails
*/
@Test
public void getLabeledElementForButton() throws Exception {
final String html = "<html>\n"
+ "<body>\n"
+ " <label id='label1' for='button1'>Item</label>\n"
+ " <button id='button1'></button>\n"
+ "</body></html>";
final WebDriver driver = loadPage2(html);
if (driver instanceof HtmlUnitDriver) {
final HtmlPage page = (HtmlPage) getWebWindowOf((HtmlUnitDriver) driver).getEnclosedPage();
final HtmlLabel label = page.getHtmlElementById("label1");
assertEquals("button1", label.getLabeledElement().getId());
}
}
/**
* @throws Exception if the test fails
*/
@Test
@Alerts("[object SVGElement]")
public void simpleScriptable() throws Exception {
final String html = HtmlPageTest.STANDARDS_MODE_PREFIX_
+ "<html><head>\n"
+ "<script>\n"
+ " function test() {\n"
+ " alert(document.getElementById('myId'));\n"
+ " }\n"
+ "</script>\n"
+ "</head><body onload='test()'>\n"
+ " <svg xmlns='http://www.w3.org/2000/svg' version='1.1'>\n"
+ " <altGlyphItem id='myId'/>\n"
+ " </svg>\n"
+ "</body></html>";
final WebDriver driver = loadPageWithAlerts2(html);
if (driver instanceof HtmlUnitDriver) {
final HtmlPage page = (HtmlPage) getWebWindowOf((HtmlUnitDriver) driver).getEnclosedPage();
assertTrue(SvgElement.class.isInstance(page.getElementById("myId")));
}
}
/**
* @throws Exception if the test fails
*/
@Test
@Alerts("[object SVGLinearGradientElement]")
public void simpleScriptable() throws Exception {
final String html = HtmlPageTest.STANDARDS_MODE_PREFIX_
+ "<html><head>\n"
+ "<script>\n"
+ " function test() {\n"
+ " alert(document.getElementById('myId'));\n"
+ " }\n"
+ "</script>\n"
+ "</head><body onload='test()'>\n"
+ " <svg xmlns='http://www.w3.org/2000/svg' version='1.1'>\n"
+ " <linearGradient id='myId'/>\n"
+ " </svg>\n"
+ "</body></html>";
final WebDriver driver = loadPageWithAlerts2(html);
if (driver instanceof HtmlUnitDriver) {
final HtmlPage page = (HtmlPage) getWebWindowOf((HtmlUnitDriver) driver).getEnclosedPage();
assertTrue(SvgLinearGradient.class.isInstance(page.getElementById("myId")));
}
}
/**
* @throws Exception if the test fails
*/
@Test
@Alerts("[object SVGFEPointLightElement]")
public void simpleScriptable() throws Exception {
final String html = HtmlPageTest.STANDARDS_MODE_PREFIX_
+ "<html><head>\n"
+ "<script>\n"
+ " function test() {\n"
+ " alert(document.getElementById('myId'));\n"
+ " }\n"
+ "</script>\n"
+ "</head><body onload='test()'>\n"
+ " <svg xmlns='http://www.w3.org/2000/svg' version='1.1'>\n"
+ " <fePointLight id='myId'/>\n"
+ " </svg>\n"
+ "</body></html>";
final WebDriver driver = loadPageWithAlerts2(html);
if (driver instanceof HtmlUnitDriver) {
final HtmlPage page = (HtmlPage) getWebWindowOf((HtmlUnitDriver) driver).getEnclosedPage();
assertTrue(SvgFePointLight.class.isInstance(page.getElementById("myId")));
}
}
private void getVisibleTextWhiteSpaceTextArea(final String whiteSpace) throws Exception {
final String htmlContent
= "<html>\n"
+ "<head></head>\n"
+ "<body>\n"
+ " <textarea id='tester' " + (whiteSpace == null ? "" : ("style='white-space: " + whiteSpace + "'")) + ">"
+ " A B C\t \t D \r\nEF\nG \n H <br> I </textarea>\n"
+ "</body></html>";
final WebDriver driver = loadPage2(htmlContent);
final String text = driver.findElement(By.id("tester")).getText();
assertEquals(getExpectedAlerts()[0], text);
if (driver instanceof HtmlUnitDriver) {
final HtmlPage page = (HtmlPage) getWebWindowOf((HtmlUnitDriver) driver).getEnclosedPage();
assertEquals(getExpectedAlerts()[0], page.getElementById("tester").getVisibleText());
}
}
/**
* @throws Exception if the test fails
*/
@Test
@Alerts("[object SVGFEFloodElement]")
public void simpleScriptable() throws Exception {
final String html = HtmlPageTest.STANDARDS_MODE_PREFIX_
+ "<html><head>\n"
+ "<script>\n"
+ " function test() {\n"
+ " alert(document.getElementById('myId'));\n"
+ " }\n"
+ "</script>\n"
+ "</head><body onload='test()'>\n"
+ " <svg xmlns='http://www.w3.org/2000/svg' version='1.1'>\n"
+ " <feFlood id='myId'/>\n"
+ " </svg>\n"
+ "</body></html>";
final WebDriver driver = loadPageWithAlerts2(html);
if (driver instanceof HtmlUnitDriver) {
final HtmlPage page = (HtmlPage) getWebWindowOf((HtmlUnitDriver) driver).getEnclosedPage();
assertTrue(SvgFeFlood.class.isInstance(page.getElementById("myId")));
}
}
/**
* @throws Exception if the test fails
*/
@Test
@Alerts("[object HTMLLinkElement]")
public void simpleScriptable() throws Exception {
final String html = "<html><head>\n"
+ "<link id='myId' href='file1.css'>\n"
+ "<script>\n"
+ " function test() {\n"
+ " alert(document.getElementById('myId'));\n"
+ " }\n"
+ "</script>\n"
+ "</head><body onload='test()'>\n"
+ "</body></html>";
final WebDriver driver = loadPageWithAlerts2(html);
if (driver instanceof HtmlUnitDriver) {
final HtmlPage page = (HtmlPage) getWebWindowOf((HtmlUnitDriver) driver).getEnclosedPage();
assertTrue(HtmlLink.class.isInstance(page.getHtmlElementById("myId")));
}
}
private BrowserTabUtil(WebDriver driver) {
this.driver = driver;
if (driver instanceof JavascriptExecutor) {
this.jsExecutor = (JavascriptExecutor) driver;
} else {
throw new RuntimeException("WebDriver must be instance of JavascriptExecutor");
}
// HtmlUnit doesn't work very well with JS and it's recommended to use this settings.
// HtmlUnit validates all scripts and then fails. It turned off the validation.
if (driver instanceof HtmlUnitDriver) {
WebClient client = ((DroneHtmlUnitDriver) driver).getWebClient();
client.getOptions().setThrowExceptionOnScriptError(false);
client.getOptions().setThrowExceptionOnFailingStatusCode(false);
}
tabs = new ArrayList<>(driver.getWindowHandles());
}
/**
* @throws Exception if the test fails
*/
@Test
public void getLabeledElementNone() throws Exception {
final String html = "<html>\n"
+ "<body>\n"
+ " <label id='label1'>Item</label>\n"
+ " <input type='text' id='text1'>\n"
+ "</body></html>";
final WebDriver driver = loadPage2(html);
if (driver instanceof HtmlUnitDriver) {
final HtmlPage page = (HtmlPage) getWebWindowOf((HtmlUnitDriver) driver).getEnclosedPage();
final HtmlLabel label = page.getHtmlElementById("label1");
assertNull(label.getLabeledElement());
}
}
/**
* @throws Exception if the test fails
*/
@Test
@Alerts("[object SVGViewElement]")
public void simpleScriptable() throws Exception {
final String html = HtmlPageTest.STANDARDS_MODE_PREFIX_
+ "<html><head>\n"
+ "<script>\n"
+ " function test() {\n"
+ " alert(document.getElementById('myId'));\n"
+ " }\n"
+ "</script>\n"
+ "</head><body onload='test()'>\n"
+ " <svg xmlns='http://www.w3.org/2000/svg' version='1.1'>\n"
+ " <view id='myId'/>\n"
+ " </svg>\n"
+ "</body></html>";
final WebDriver driver = loadPageWithAlerts2(html);
if (driver instanceof HtmlUnitDriver) {
final HtmlPage page = (HtmlPage) getWebWindowOf((HtmlUnitDriver) driver).getEnclosedPage();
assertTrue(SvgView.class.isInstance(page.getElementById("myId")));
}
}
private void getVisibleTextWhiteSpaceBreak(final String whiteSpace) throws Exception {
final String htmlContent
= "<html>\n"
+ "<head></head>\n"
+ "<body>\n"
+ " <br id='tester' " + (whiteSpace == null ? "" : ("style='white-space: " + whiteSpace + "'")) + ">\n"
+ "</body></html>";
final WebDriver driver = loadPage2(htmlContent);
final String text = driver.findElement(By.id("tester")).getText();
assertEquals(getExpectedAlerts()[0], text);
if (driver instanceof HtmlUnitDriver) {
final HtmlPage page = (HtmlPage) getWebWindowOf((HtmlUnitDriver) driver).getEnclosedPage();
assertEquals(getExpectedAlerts()[0], page.getElementById("tester").getVisibleText());
}
}
/**
* @throws Exception if the test fails
*/
@Test
@Alerts("[object SVGPolylineElement]")
public void simpleScriptable() throws Exception {
final String html = HtmlPageTest.STANDARDS_MODE_PREFIX_
+ "<html><head>\n"
+ "<script>\n"
+ " function test() {\n"
+ " alert(document.getElementById('myId'));\n"
+ " }\n"
+ "</script>\n"
+ "</head><body onload='test()'>\n"
+ " <svg xmlns='http://www.w3.org/2000/svg' version='1.1'>\n"
+ " <polyline id='myId'/>\n"
+ " </svg>\n"
+ "</body></html>";
final WebDriver driver = loadPageWithAlerts2(html);
if (driver instanceof HtmlUnitDriver) {
final HtmlPage page = (HtmlPage) getWebWindowOf((HtmlUnitDriver) driver).getEnclosedPage();
assertTrue(SvgPolyline.class.isInstance(page.getElementById("myId")));
}
}
/**
* @throws Exception if the test fails
*/
@Test
@Alerts("[object SVGPathElement]")
public void simpleScriptable() throws Exception {
final String html = HtmlPageTest.STANDARDS_MODE_PREFIX_
+ "<html><head>\n"
+ "<script>\n"
+ " function test() {\n"
+ " alert(document.getElementById('myId'));\n"
+ " }\n"
+ "</script>\n"
+ "</head><body onload='test()'>\n"
+ " <svg xmlns='http://www.w3.org/2000/svg' version='1.1'>\n"
+ " <path id='myId'/>\n"
+ " </svg>\n"
+ "</body></html>";
final WebDriver driver = loadPageWithAlerts2(html);
if (driver instanceof HtmlUnitDriver) {
final HtmlPage page = (HtmlPage) getWebWindowOf((HtmlUnitDriver) driver).getEnclosedPage();
assertTrue(SvgPath.class.isInstance(page.getElementById("myId")));
}
}
/**
* @throws Exception if the test fails
*/
@Test
@Alerts("[object HTMLOListElement]")
public void simpleScriptable() throws Exception {
final String html = "<html><head>\n"
+ "<script>\n"
+ " function test() {\n"
+ " alert(document.getElementById('myId'));\n"
+ " }\n"
+ "</script>\n"
+ "</head><body onload='test()'>\n"
+ " <ol id='myId'/>\n"
+ "</body></html>";
final WebDriver driver = loadPageWithAlerts2(html);
if (driver instanceof HtmlUnitDriver) {
final WebElement element = driver.findElement(By.id("myId"));
assertTrue(toHtmlElement(element) instanceof HtmlOrderedList);
}
}
public HiddenHtmlPrompt( UiDriver uiDriver ) {
super(uiDriver);
HiddenBrowserDriver browserDriver = (HiddenBrowserDriver) uiDriver;
HtmlUnitDriver driver = (HtmlUnitDriver) browserDriver.getInternalObject(InternalObjectsEnum.WebDriver.name());
Field webClientField = null;
boolean fieldAccessibleState = false;
try {
TargetLocator targetLocator = driver.switchTo();
webClientField = targetLocator.getClass().getDeclaringClass().getDeclaredField("webClient");
fieldAccessibleState = webClientField.isAccessible();
webClientField.setAccessible(true);
webClient = (WebClient) webClientField.get(targetLocator.defaultContent());
} catch (Exception e) {
throw new SeleniumOperationException("Error retrieving internal Selenium web client", e);
} finally {
if (webClientField != null) {
webClientField.setAccessible(fieldAccessibleState);
}
}
}
private void getVisibleTextWhiteSpaceInputRadio(final String whiteSpace) throws Exception {
final String htmlContent
= "<html>\n"
+ "<head></head>\n"
+ "<body>\n"
+ "<form id='form1'>\n"
+ " <input type='radio' name='tester' id='tester' "
+ (whiteSpace == null ? "" : ("style='white-space: " + whiteSpace + "'"))
+ " value=' A B C\t \t D \r\nEF\nG \n H <br> I '>\n"
+ "</form>\n"
+ "</body></html>";
final WebDriver driver = loadPage2(htmlContent);
final String text = driver.findElement(By.id("tester")).getText();
assertEquals(getExpectedAlerts()[0], text);
if (driver instanceof HtmlUnitDriver) {
final HtmlPage page = (HtmlPage) getWebWindowOf((HtmlUnitDriver) driver).getEnclosedPage();
assertEquals(getExpectedAlerts()[0], page.getElementById("tester").getVisibleText());
}
}
/**
* @throws Exception if the test fails
*/
@Test
@Alerts("[object SVGSwitchElement]")
public void simpleScriptable() throws Exception {
final String html = HtmlPageTest.STANDARDS_MODE_PREFIX_
+ "<html><head>\n"
+ "<script>\n"
+ " function test() {\n"
+ " alert(document.getElementById('myId'));\n"
+ " }\n"
+ "</script>\n"
+ "</head><body onload='test()'>\n"
+ " <svg xmlns='http://www.w3.org/2000/svg' version='1.1'>\n"
+ " <switch id='myId'/>\n"
+ " </svg>\n"
+ "</body></html>";
final WebDriver driver = loadPageWithAlerts2(html);
if (driver instanceof HtmlUnitDriver) {
final HtmlPage page = (HtmlPage) getWebWindowOf((HtmlUnitDriver) driver).getEnclosedPage();
assertTrue(SvgSwitch.class.isInstance(page.getElementById("myId")));
}
}
/**
* @throws Exception if the test fails
*/
@Test
@Alerts({"2", "2"})
public void getElementsByTagName() throws Exception {
final String html = "<html><head><script>\n"
+ "function test() {\n"
+ " alert(document.f1.getElementsByTagName('input').length);\n"
+ " alert(document.f1.getElementsByTagName('INPUT').length);\n"
+ "}\n"
+ "</script></head>\n"
+ "<body onload='test()'>\n"
+ " <form name='f1'>\n"
+ " <input>\n"
+ " <INPUT>\n"
+ " </form>\n"
+ "</body></html>";
final WebDriver driver = loadPageWithAlerts2(html);
if (driver instanceof HtmlUnitDriver) {
final WebWindow webWindow = getWebWindowOf((HtmlUnitDriver) driver);
final HtmlPage page = (HtmlPage) webWindow.getEnclosedPage();
assertEquals(2, page.getForms().get(0).getElementsByTagName("input").size());
assertEquals(2, page.getForms().get(0).getElementsByTagName("INPUT").size());
}
}