## com.gargoylesoftware.htmlunit.html
Class HtmlPage

    java.lang.Object
      com.gargoylesoftware.htmlunit.html.DomNode
          com.gargoylesoftware.htmlunit.SgmlPage
              com.gargoylesoftware.htmlunit.html.HtmlPage

All Implemented Interfaces:
  Page, java.io.Serializable, java.lang.Cloneable, org.w3c.dom.Document, org.w3c.dom.Node

Direct Known Subclasses:
  XHtmlPage

    public class HtmlPage

extends SgmlPage

A representation of an HTML page returned from a server.

This class provides different methods to access the page's content like `getForms()`, `getAnchors()`, `getElementById(String)`, ... as well as the very powerful inherited methods `DomNode.getByXPath(String)` and `DomNode.getFirstByXPath(String)` for fine grained user specific access to child nodes.

Child elements allowing user interaction provide methods for this purpose like `HtmlElement.click()`, `HtmlElement.type(String)`, `HtmlOption.setSelected(boolean)`, ...

HtmlPage instances should not be instantiated directly. They will be returned by `WebClient.getPage(String)` when the content type of the server's response is `text/html` (or one of its variations).
Example:
`final HtmlPage page = webClient.`getPage`("http://mywebsite/some/page.html");`

Version:
  $Revision: 4882 $
Author:
  Mike Bowler, Alex Nikiforoff, Noboru Sinohara, David K. Taylor, Andreas Hangler, Christian Sell, Chris Erskine, Marc Guillemot, Ahmed Ashour, Daniel Gredler, Dmitri Zoubkov, Sudhan Moghe, Ethan Glasser-Camp, Tom Anderson
See Also:
  Serialized Form

Nested Class Summary

Nested classes/interfaces inherited from class com.gargoylesoftware.htmlunit.html.DomNode
`DomNode.ChildIterator, DomNode.DescendantElementsIterator`

Field Summary

Fields inherited from class com.gargoylesoftware.htmlunit.html.DomNode
`AS_TEXT_BLANK, AS_TEXT_BLOCK_SEPARATOR, AS_TEXT_NEW_LINE, AS_TEXT_TAB, PROPERTY_ELEMENT, READY_STATE_COMPLETE, READY_STATE_INTERACTIVE, READY_STATE_LOADED, READY_STATE_LOADING, READY_STATE_UNINITIALIZED`

Fields inherited from interface org.w3c.dom.Node

`ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_POSITION_CONTAINED_BY, DOCUMENT_POSITION_CONTAINS, DOCUMENT_POSITION_DISCONNECTED, DOCUMENT_POSITION_FOLLOWING, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, DOCUMENT_POSITION_PRECEDING, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE`

Constructor Summary
`HtmlPage(java.net.URL originatingUrl, WebResponse webResponse, WebWindow webWindow)` Creates an instance of HtmlPage.

Method Summary
`void` `addHtmlAttributeChangeListener(HtmlAttributeChangeListener listener)` Adds an HtmlAttributeChangeListener to the listener list.
`org.w3c.dom.Node` `adoptNode(org.w3c.dom.Node source)` Not yet implemented.
`protected void` `checkChildHierarchy(org.w3c.dom.Node newChild)` Check for insertion errors for a new child node.
`void` `cleanUp()` Clean up this page.
`protected HtmlPage` `clone()` Creates a clone of this instance, and clears cached state to be not shared with the original.
`HtmlPage` `cloneNode(boolean deep)` Override cloneNode to add cloned elements to the clone, not to the original.
`org.w3c.dom.Attr` `createAttribute(java.lang.String qualifiedName)` Not yet implemented.
`org.w3c.dom.Attr` `createAttributeNS(java.lang.String namespaceURI, java.lang.String qualifiedName)` Not yet implemented.
`org.w3c.dom.CDATASection` `createCDATASection(java.lang.String data)`
`org.w3c.dom.Comment` `createComment(java.lang.String data)`
`org.w3c.dom.DocumentFragment` `createDocumentFragment()`
`HtmlElement` `createElement(java.lang.String tagName)` Creates an element, the type of which depends on the specified tag name.
`HtmlElement` `createElementNS(java.lang.String namespaceURI, java.lang.String qualifiedName)` Create a new Element with the given namespace and qualified name.
`org.w3c.dom.EntityReference` `createEntityReference(java.lang.String id)` Not yet implemented.
`org.w3c.dom.ProcessingInstruction` `createProcessingInstruction(java.lang.String namespaceURI, java.lang.String qualifiedName)` Not yet implemented.
`org.w3c.dom.Text` `createTextNode(java.lang.String data)`
`void` `deregisterFramesIfNeeded()` Deregister frames that are no longer in use.
`ScriptResult` `executeJavaScript(java.lang.String sourceCode)` Executes the specified JavaScript code within the page.
`ScriptResult` `executeJavaScriptFunctionIfPossible(net.sourceforge.htmlunit.corejs.javascript.Function function, net.sourceforge.htmlunit.corejs.javascript.Scriptable thisObject, java.lang.Object[] args, DomNode htmlElementScope)` INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK. Execute a Function in the given context.
`ScriptResult` `executeJavaScriptIfPossible(java.lang.String sourceCode, java.lang.String sourceName, int startLine)` INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
`HtmlAnchor` `getAnchorByHref(java.lang.String href)` Returns the `HtmlAnchor` with the specified href.
`HtmlAnchor` `getAnchorByName(java.lang.String name)` Returns the `HtmlAnchor` with the specified name.
`HtmlAnchor` `getAnchorByText(java.lang.String text)` Returns the first anchor with the specified text.
`java.util.List<HtmlAnchor>` `getAnchors()` Returns a list of all anchors contained in this page.
`HtmlElement` `getBody()` Returns the `body` element (or `frameset` element), or `null` if it does not yet exist.
`HtmlElement` `getDocumentElement()` Returns the document element.
`java.lang.String` `getDocumentURI()` Not yet implemented.
`org.w3c.dom.DOMConfiguration` `getDomConfig()` Not yet implemented.
`HtmlElement` `getElementByAccessKey(char accessKey)` Returns the HTML element that is assigned to the specified access key.
`HtmlElement` `getElementById(java.lang.String elementId)`

`

`<E extends HtmlElement> E`

`

`getElementByName(java.lang.String name)`
Returns the HTML element with the specified name.

`java.util.List<HtmlElement>` `getElementsByAccessKey(char accessKey)` Returns all the HTML elements that are assigned to the specified access key.
`java.util.List<HtmlElement>` `getElementsByIdAndOrName(java.lang.String idAndOrName)` Returns the HTML elements with the specified string for their name or ID.
`java.util.List<HtmlElement>` `getElementsByName(java.lang.String name)` Returns the HTML elements with the specified name attribute.
`DomNodeList<HtmlElement>` `getElementsByTagName(java.lang.String tagName)`
`DomNodeList<HtmlElement>` `getElementsByTagNameNS(java.lang.String namespaceURI, java.lang.String localName)` Not yet implemented.
`HtmlAnchor` `getFirstAnchorByText(java.lang.String text)` Deprecated. As of 2.6, please use `getAnchorByText(String)` instead
`HtmlElement` `getFocusedElement()` Returns the element with the focus or null if no element has the focus.
`HtmlForm` `getFormByName(java.lang.String name)` Returns the first form that matches the specified name.
`java.util.List<HtmlForm>` `getForms()` Returns a list of all the forms in this page.
`FrameWindow` `getFrameByName(java.lang.String name)` Returns the first frame contained in this page with the specified name.
`java.util.List<FrameWindow>` `getFrames()` Returns a list containing all the frames (from frame and iframe tags) in this page.
`java.net.URL` `getFullyQualifiedUrl(java.lang.String relativeUrl)` Given a relative URL (ie `/foo`), returns a fully-qualified URL based on the URL that was used to load this page.

`

`<E extends HtmlElement> E`

`

`getHtmlElementById(java.lang.String id)`
Returns the HTML element with the specified ID.

`

`<E extends HtmlElement> E`

`

`getHtmlElementById(java.lang.String id, boolean caseSensitive)`
Returns the HTML element with the specified ID.

`org.w3c.dom.DOMImplementation` `getImplementation()` Not yet implemented.
`java.lang.String` `getInputEncoding()` Not yet implemented.
`protected java.util.List<HtmlMeta>` `getMetaTags(java.lang.String httpEquiv)` Gets the meta tag for a given http-equiv value.
`java.util.Map<java.lang.String,java.lang.String>` `getNamespaces()` Returns all namespaces defined in the root element of this page.
`org.w3c.dom.Document` `getOwnerDocument()`
`HtmlPage` `getPage()` Returns the page that contains this node.
`java.lang.String` `getPageEncoding()` Returns the charset used in the page.
`java.lang.String` `getResolvedTarget(java.lang.String elementTarget)` Given a target attribute value, resolve the target using a base target for the page.
`org.w3c.dom.ranges.Range` `getSelection()` INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
`boolean` `getStrictErrorChecking()` Not yet implemented.
`java.util.List<java.lang.String>` `getTabbableElementIds()` Returns a list of ids (strings) that correspond to the tabbable elements in this page.
`java.util.List<HtmlElement>` `getTabbableElements()` Returns a list of all elements that are tabbable in the order that will be used for tabbing.
`java.lang.String` `getTitleText()` Returns the title of this page or an empty string if the title wasn't specified.
`java.lang.String` `getXmlEncoding()` Not yet implemented.
`boolean` `getXmlStandalone()` Not yet implemented.
`java.lang.String` `getXmlVersion()` Not yet implemented.
`boolean` `hasCaseSensitiveTagNames()` Returns `true` if this page has case-sensitive tag names, `false` otherwise.
`org.w3c.dom.Node` `importNode(org.w3c.dom.Node importedNode, boolean deep)` Not yet implemented.
`void` `initialize()` Initialize this page.
`boolean` `isBeingParsed()` Returns `true` if an HTML parser is operating on this page, adding content to it.
`boolean` `isOnbeforeunloadAccepted()` INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
`HtmlElement` `pressAccessKey(char accessKey)` Simulate pressing an access key.
`Page` `refresh()` Refreshes the page by sending the same parameters as previously sent to get this page.
`void` `removeHtmlAttributeChangeListener(HtmlAttributeChangeListener listener)` Removes an HtmlAttributeChangeListener from the listener list.
`org.w3c.dom.Node` `renameNode(org.w3c.dom.Node newNode, java.lang.String namespaceURI, java.lang.String qualifiedName)` Not yet implemented.
`void` `save(java.io.File file)` Saves the current page with all images at the specified location.
`protected void` `setDocumentType(DomDocumentType type)` Sets the document type.
`void` `setDocumentURI(java.lang.String documentURI)` Not yet implemented.
`boolean` `setFocusedElement(HtmlElement newElement)` Moves the focus to the specified element.
`boolean` `setFocusedElement(HtmlElement newElement, boolean windowActivated)` Moves the focus to the specified element.
`void` `setStrictErrorChecking(boolean strictErrorChecking)` Not yet implemented.
`void` `setTitleText(java.lang.String message)` Sets the text for the title of this page.
`void` `setXmlStandalone(boolean xmlStandalone)` Not yet implemented.
`void` `setXmlVersion(java.lang.String xmlVersion)` Not yet implemented.
`HtmlElement` `tabToNextElement()` Move the focus to the next element in the tab order.
`HtmlElement` `tabToPreviousElement()` Move the focus to the previous element in the tab order.
`java.lang.String` `toString()` Gives a basic representation for debugging purposes.
`void` `writeInParsedStream(java.lang.String string)` INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.

Methods inherited from class com.gargoylesoftware.htmlunit.SgmlPage
`asXml, createDomDocumentFragment, getDoctype, getEnclosingWindow, getNodeName, getNodeType, getWebClient, getWebResponse, normalizeDocument, setEnclosingWindow`

Methods inherited from class com.gargoylesoftware.htmlunit.html.DomNode

`addDomChangeListener, appendChild, asText, compareDocumentPosition, fireNodeAdded, fireNodeDeleted, getAllHtmlChildElements, getAncestors, getAttributes, getBaseURI, getByXPath, getCanonicalXPath, getChildNodes, getChildren, getEndColumnNumber, getEndLineNumber, getFeature, getFirstByXPath, getFirstChild, getLastChild, getLocalName, getNamespaceURI, getNextSibling, getNodeValue, getParentNode, getPrefix, getPreviousSibling, getReadyState, getScriptObject, getStartColumnNumber, getStartLineNumber, getTextContent, getUserData, hasAttributes, hasChildNodes, insertBefore, insertBefore, isAncestorOf, isBlock, isDefaultNamespace, isDisplayed, isEqualNode, isSameNode, isSupported, isTrimmedText, lookupNamespaceURI, lookupPrefix, normalize, notifyIncorrectness, onAddedToPage, onAllChildrenAddedToPage, printChildrenAsXml, printXml, remove, removeAllChildren, removeChild, removeDomChangeListener, replace, replaceChild, selectNodes, selectSingleNode, setNextSibling, setNodeValue, setParentNode, setPrefix, setPreviousSibling, setReadyState, setScriptObject, setTextContent, setUserData`

Methods inherited from class java.lang.Object
`equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Methods inherited from interface org.w3c.dom.Node

`appendChild, compareDocumentPosition, getAttributes, getBaseURI, getChildNodes, getFeature, getFirstChild, getLastChild, getLocalName, getNamespaceURI, getNextSibling, getNodeValue, getParentNode, getPrefix, getPreviousSibling, getTextContent, getUserData, hasAttributes, hasChildNodes, insertBefore, isDefaultNamespace, isEqualNode, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, normalize, removeChild, replaceChild, setNodeValue, setPrefix, setTextContent, setUserData`

Constructor Detail

### HtmlPage

    public HtmlPage(java.net.URL originatingUrl,
                    WebResponse webResponse,
                    WebWindow webWindow)

  Creates an instance of HtmlPage. An HtmlPage instance is normally retrieved with `WebClient.getPage(String)`.

  Parameters:
    `originatingUrl` - the URL that was used to load this page
    `webResponse` - the web response that was used to create this page
    `webWindow` - the window that this page is being loaded into

Method Detail

### getPage

    public HtmlPage getPage()

  Returns the page that contains this node.

  Overrides:
    `getPage` in class `SgmlPage`
  Returns:
    the page that contains this node

### hasCaseSensitiveTagNames

    public boolean hasCaseSensitiveTagNames()

  Returns `true` if this page has case-sensitive tag names, `false` otherwise. In general, XML has case-sensitive tag names, and HTML doesn't. This is especially important during XPath matching.

  Specified by:
    `hasCaseSensitiveTagNames` in class `SgmlPage`
  Returns:
    `true` if this page has case-sensitive tag names, `false` otherwise

### initialize

    public void initialize()
                    throws java.io.IOException,
                           FailingHttpStatusCodeException

  Initialize this page.

  Specified by:
    `initialize` in interface `Page`
  Overrides:
    `initialize` in class `SgmlPage`
  Throws:
    `java.io.IOException` - if an IO problem occurs
    `FailingHttpStatusCodeException` - if the server returns a failing status code AND the property `WebClient.setThrowExceptionOnFailingStatusCode(boolean)` is set to true.

### cleanUp

    public void cleanUp()

  Clean up this page.

  Specified by:
    `cleanUp` in interface `Page`
  Overrides:
    `cleanUp` in class `SgmlPage`

### getDocumentElement

    public HtmlElement getDocumentElement()

  Returns the document element.

  Specified by:
    `getDocumentElement` in interface `org.w3c.dom.Document`
  Overrides:
    `getDocumentElement` in class `SgmlPage`
  Returns:
    the document element

### getBody

    public HtmlElement getBody()

  Returns the `body` element (or `frameset` element), or `null` if it does not yet exist.

  Returns:
    the `body` element (or `frameset` element), or `null` if it does not yet exist

### getOwnerDocument

    public org.w3c.dom.Document getOwnerDocument()

  Specified by:
    `getOwnerDocument` in interface `org.w3c.dom.Node`
  Overrides:
    `getOwnerDocument` in class `DomNode`

### importNode

    public org.w3c.dom.Node importNode(org.w3c.dom.Node importedNode,
                                       boolean deep)

  Not yet implemented.

### getElementsByTagName

    public DomNodeList<HtmlElement> getElementsByTagName(java.lang.String tagName)

### getElementsByTagNameNS

    public DomNodeList<HtmlElement> getElementsByTagNameNS(java.lang.String namespaceURI,
                                                           java.lang.String localName)

  Not yet implemented.

### getElementById

    public HtmlElement getElementById(java.lang.String elementId)

### getInputEncoding

    public java.lang.String getInputEncoding()

  Not yet implemented.

### getXmlEncoding

    public java.lang.String getXmlEncoding()

  Not yet implemented.

### getXmlStandalone

    public boolean getXmlStandalone()

  Not yet implemented.

### setXmlStandalone

    public void setXmlStandalone(boolean xmlStandalone)
                          throws org.w3c.dom.DOMException

  Not yet implemented.

  Throws:
    `org.w3c.dom.DOMException`

### getXmlVersion

    public java.lang.String getXmlVersion()

  Not yet implemented.

### setXmlVersion

    public void setXmlVersion(java.lang.String xmlVersion)
                       throws org.w3c.dom.DOMException

  Not yet implemented.

  Throws:
    `org.w3c.dom.DOMException`

### getStrictErrorChecking

    public boolean getStrictErrorChecking()

  Not yet implemented.

### setStrictErrorChecking

    public void setStrictErrorChecking(boolean strictErrorChecking)

  Not yet implemented.

### getDocumentURI

    public java.lang.String getDocumentURI()

  Not yet implemented.

### setDocumentURI

    public void setDocumentURI(java.lang.String documentURI)

  Not yet implemented.

### adoptNode

    public org.w3c.dom.Node adoptNode(org.w3c.dom.Node source)
                               throws org.w3c.dom.DOMException

  Not yet implemented.

  Throws:
    `org.w3c.dom.DOMException`

### getDomConfig

    public org.w3c.dom.DOMConfiguration getDomConfig()

  Not yet implemented.

### renameNode

    public org.w3c.dom.Node renameNode(org.w3c.dom.Node newNode,
                                       java.lang.String namespaceURI,
                                       java.lang.String qualifiedName)
                                throws org.w3c.dom.DOMException

  Not yet implemented.

  Throws:
    `org.w3c.dom.DOMException`

### getPageEncoding

    public java.lang.String getPageEncoding()

  Returns the charset used in the page. The sources of this information are from 1).meta element which http-equiv attribute value is 'content-type', or if not from the response header.

  Specified by:
    `getPageEncoding` in class `SgmlPage`
  Returns:
    the value of charset

### createElement

    public HtmlElement createElement(java.lang.String tagName)

  Creates an element, the type of which depends on the specified tag name.

  Specified by:
    `createElement` in interface `org.w3c.dom.Document`
  Specified by:
    `createElement` in class `SgmlPage`
  Parameters:
    `tagName` - the tag name, preferably in lowercase
  Returns:
    an element, the type of which depends on the specified tag name

### createElementNS

    public HtmlElement createElementNS(java.lang.String namespaceURI,
                                       java.lang.String qualifiedName)

  Create a new Element with the given namespace and qualified name.

  Specified by:
    `createElementNS` in interface `org.w3c.dom.Document`
  Specified by:
    `createElementNS` in class `SgmlPage`
  Parameters:
    `namespaceURI` - the URI that identifies an XML namespace
    `qualifiedName` - the qualified name of the element type to instantiate
  Returns:
    the new element

### createAttributeNS

    public org.w3c.dom.Attr createAttributeNS(java.lang.String namespaceURI,
                                              java.lang.String qualifiedName)

  Not yet implemented.

### createAttribute

    public org.w3c.dom.Attr createAttribute(java.lang.String qualifiedName)

  Not yet implemented.

### createComment

    public org.w3c.dom.Comment createComment(java.lang.String data)

### createTextNode

    public org.w3c.dom.Text createTextNode(java.lang.String data)

### createCDATASection

    public org.w3c.dom.CDATASection createCDATASection(java.lang.String data)

### createDocumentFragment

    public org.w3c.dom.DocumentFragment createDocumentFragment()

### getImplementation

    public org.w3c.dom.DOMImplementation getImplementation()

  Not yet implemented.

### createEntityReference

    public org.w3c.dom.EntityReference createEntityReference(java.lang.String id)

  Not yet implemented.

### createProcessingInstruction

    public org.w3c.dom.ProcessingInstruction createProcessingInstruction(java.lang.String namespaceURI,
                                                                         java.lang.String qualifiedName)

  Not yet implemented.

### getAnchorByName

    public HtmlAnchor getAnchorByName(java.lang.String name)
                               throws ElementNotFoundException

  Returns the `HtmlAnchor` with the specified name.

  Parameters:
    `name` - the name to search by
  Returns:
    the `HtmlAnchor` with the specified name
  Throws:
    `ElementNotFoundException` - if the anchor could not be found

### getAnchorByHref

    public HtmlAnchor getAnchorByHref(java.lang.String href)
                               throws ElementNotFoundException

  Returns the `HtmlAnchor` with the specified href.

  Parameters:
    `href` - the string to search by
  Returns:
    the HtmlAnchor
  Throws:
    `ElementNotFoundException` - if the anchor could not be found

### getAnchors

    public java.util.List<HtmlAnchor> getAnchors()

  Returns a list of all anchors contained in this page.

  Returns:
    the list of `HtmlAnchor` in this page

### getFirstAnchorByText

    @Deprecated
    public HtmlAnchor getFirstAnchorByText(java.lang.String text)
                                    throws ElementNotFoundException

  Deprecated. As of 2.6, please use `getAnchorByText(String)` instead

  Returns the first anchor with the specified text.

  Parameters:
    `text` - the text to search for
  Returns:
    the first anchor that was found
  Throws:
    `ElementNotFoundException` - if no anchors are found with the specified text

### getAnchorByText

    public HtmlAnchor getAnchorByText(java.lang.String text)
                               throws ElementNotFoundException

  Returns the first anchor with the specified text.

  Parameters:
    `text` - the text to search for
  Returns:
    the first anchor that was found
  Throws:
    `ElementNotFoundException` - if no anchors are found with the specified text

### getFormByName

    public HtmlForm getFormByName(java.lang.String name)
                           throws ElementNotFoundException

  Returns the first form that matches the specified name.

  Parameters:
    `name` - the name to search for
  Returns:
    the first form
  Throws:
    `ElementNotFoundException` - If no forms match the specified result.

### getForms

    public java.util.List<HtmlForm> getForms()

  Returns a list of all the forms in this page.

  Returns:
    all the forms in this page

### getFullyQualifiedUrl

    public java.net.URL getFullyQualifiedUrl(java.lang.String relativeUrl)
                                      throws java.net.MalformedURLException

  Given a relative URL (ie `/foo`), returns a fully-qualified URL based on the URL that was used to load this page.

  Parameters:
    `relativeUrl` - the relative URL
  Returns:
    the fully-qualified URL for the specified relative URL
  Throws:
    `java.net.MalformedURLException` - if an error occurred when creating a URL object

### getResolvedTarget

    public java.lang.String getResolvedTarget(java.lang.String elementTarget)

  Given a target attribute value, resolve the target using a base target for the page.

  Parameters:
    `elementTarget` - the target specified as an attribute of the element
  Returns:
    the resolved target to use for the element

### getTabbableElementIds

    public java.util.List<java.lang.String> getTabbableElementIds()

  Returns a list of ids (strings) that correspond to the tabbable elements in this page. Return them in the same order specified in `getTabbableElements()`

  Returns:
    the list of id's

### getTabbableElements

    public java.util.List<HtmlElement> getTabbableElements()

  Returns a list of all elements that are tabbable in the order that will be used for tabbing.

  The rules for determining tab order are as follows:

  1. Those elements that support the tabindex attribute and assign a positive value to it are navigated first. Navigation proceeds from the element with the lowest tabindex value to the element with the highest value. Values need not be sequential nor must they begin with any particular value. Elements that have identical tabindex values should be navigated in the order they appear in the character stream.
  2. Those elements that do not support the tabindex attribute or support it and assign it a value of "0" are navigated next. These elements are navigated in the order they appear in the character stream.
  3. Elements that are disabled do not participate in the tabbing order.
  Additionally, the value of tabindex must be within 0 and 32767. Any values outside this range will be ignored.

  The following elements support the `tabindex` attribute: A, AREA, BUTTON, INPUT, OBJECT, SELECT, and TEXTAREA.

  Returns:
    all the tabbable elements in proper tab order

### getElementByAccessKey

    public HtmlElement getElementByAccessKey(char accessKey)

  Returns the HTML element that is assigned to the specified access key. An access key (aka mnemonic key) is used for keyboard navigation of the page.

  Only the following HTML elements may have `accesskey`s defined: A, AREA, BUTTON, INPUT, LABEL, LEGEND, and TEXTAREA.

  Parameters:
    `accessKey` - the key to look for
  Returns:
    the HTML element that is assigned to the specified key or null if no elements can be found that match the specified key.

### getElementsByAccessKey

    public java.util.List<HtmlElement> getElementsByAccessKey(char accessKey)

  Returns all the HTML elements that are assigned to the specified access key. An access key (aka mnemonic key) is used for keyboard navigation of the page.

  The HTML specification seems to indicate that one accesskey cannot be used for multiple elements however Internet Explorer does seem to support this. It's worth noting that Mozilla does not support multiple elements with one access key so you are making your HTML browser specific if you rely on this feature.

  Only the following HTML elements may have `accesskey`s defined: A, AREA, BUTTON, INPUT, LABEL, LEGEND, and TEXTAREA.

  Parameters:
    `accessKey` - the key to look for
  Returns:
    the elements that are assigned to the specified accesskey

### executeJavaScript

    public ScriptResult executeJavaScript(java.lang.String sourceCode)

  Executes the specified JavaScript code within the page. The usage would be similar to what can be achieved to execute JavaScript in the current page by entering "javascript:...some JS code..." in the URL field of a native browser.

  Note: the provided code won't be executed if JavaScript has been disabled on the WebClient (see `WebClient.isJavaScriptEnabled()`.

  Parameters:
    `sourceCode` - the JavaScript code to execute
  Returns:
    a ScriptResult which will contain both the current page (which may be different than the previous page) and a JavaScript result object

### executeJavaScriptIfPossible

    public ScriptResult executeJavaScriptIfPossible(java.lang.String sourceCode,
                                                    java.lang.String sourceName,
                                                    int startLine)

  INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.

  Execute the specified JavaScript if a JavaScript engine was successfully instantiated. If this JavaScript causes the current page to be reloaded (through location="" or form.submit()) then return the new page. Otherwise return the current page.

  Please note: Although this method is public, it is not intended for general execution of JavaScript. Users of HtmlUnit should interact with the pages as a user would by clicking on buttons or links and having the JavaScript event handlers execute as needed..

  Parameters:
    `sourceCode` - the JavaScript code to execute
    `sourceName` - the name for this chunk of code (will be displayed in error messages)
    `startLine` - the line at which the script source starts
  Returns:
    a ScriptResult which will contain both the current page (which may be different than the previous page and a JavaScript result object.

### executeJavaScriptFunctionIfPossible

    public ScriptResult executeJavaScriptFunctionIfPossible(net.sourceforge.htmlunit.corejs.javascript.Function function,
                                                            net.sourceforge.htmlunit.corejs.javascript.Scriptable thisObject,
                                                            java.lang.Object[] args,
                                                            DomNode htmlElementScope)

  INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
  Execute a Function in the given context.

  Parameters:
    `function` - the JavaScript Function to call
    `thisObject` - the "this" object to be used during invocation
    `args` - the arguments to pass into the call
    `htmlElementScope` - the HTML element for which this script is being executed This element will be the context during the JavaScript execution. If null, the context will default to the page.
  Returns:
    a ScriptResult which will contain both the current page (which may be different than the previous page and a JavaScript result object.

### getTitleText

    public java.lang.String getTitleText()

  Returns the title of this page or an empty string if the title wasn't specified.

  Returns:
    the title of this page or an empty string if the title wasn't specified

### setTitleText

    public void setTitleText(java.lang.String message)

  Sets the text for the title of this page. If there is not a title element on this page, then one has to be generated.

  Parameters:
    `message` - the new text

### deregisterFramesIfNeeded

    public void deregisterFramesIfNeeded()

  Deregister frames that are no longer in use.

### getFrames

    public java.util.List<FrameWindow> getFrames()

  Returns a list containing all the frames (from frame and iframe tags) in this page.

  Returns:
    a list of `FrameWindow`

### getFrameByName

    public FrameWindow getFrameByName(java.lang.String name)
                               throws ElementNotFoundException

  Returns the first frame contained in this page with the specified name.

  Parameters:
    `name` - the name to search for
  Returns:
    the first frame found
  Throws:
    `ElementNotFoundException` - If no frame exist in this page with the specified name.

### pressAccessKey

    public HtmlElement pressAccessKey(char accessKey)
                               throws java.io.IOException

  Simulate pressing an access key. This may change the focus, may click buttons and may invoke JavaScript.

  Parameters:
    `accessKey` - the key that will be pressed
  Returns:
    the element that has the focus after pressing this access key or null if no element has the focus.
  Throws:
    `java.io.IOException` - if an IO error occurs during the processing of this access key (this would only happen if the access key triggered a button which in turn caused a page load)

### tabToNextElement

    public HtmlElement tabToNextElement()

  Move the focus to the next element in the tab order. To determine the specified tab order, refer to `getTabbableElements()`

  Returns:
    the element that has focus after calling this method

### tabToPreviousElement

    public HtmlElement tabToPreviousElement()

  Move the focus to the previous element in the tab order. To determine the specified tab order, refer to `getTabbableElements()`

  Returns:
    the element that has focus after calling this method

### getHtmlElementById

    public <E extends HtmlElement> E getHtmlElementById(java.lang.String id)
                                             throws ElementNotFoundException

  Returns the HTML element with the specified ID. If more than one element has this ID (not allowed by the HTML spec), then this method returns the first one.

  Type Parameters:
    `E` - the element type
  Parameters:
    `id` - the ID value to search for
  Returns:
    the HTML element with the specified ID
  Throws:
    `ElementNotFoundException` - if no element was found matching the specified ID

### getHtmlElementById

    public <E extends HtmlElement> E getHtmlElementById(java.lang.String id,
                                                        boolean caseSensitive)
                                             throws ElementNotFoundException

  Returns the HTML element with the specified ID. If more than one element has this ID (not allowed by the HTML spec), then this method returns the first one.

  Type Parameters:
    `E` - the element type
  Parameters:
    `id` - the ID value to search for
    `caseSensitive` - whether to consider case sensitivity or not
  Returns:
    the HTML element with the specified ID
  Throws:
    `ElementNotFoundException` - if no element was found matching the specified ID

### getElementByName

    public <E extends HtmlElement> E getElementByName(java.lang.String name)
                                           throws ElementNotFoundException

  Returns the HTML element with the specified name. If more than one element has this name, then this method returns the first one.

  Type Parameters:
    `E` - the element type
  Parameters:
    `name` - the name value to search for
  Returns:
    the HTML element with the specified name
  Throws:
    `ElementNotFoundException` - if no element was found matching the specified name

### getElementsByName

    public java.util.List<HtmlElement> getElementsByName(java.lang.String name)

  Returns the HTML elements with the specified name attribute. If there are no elements with the specified name, this method returns an empty list. Please note that the lists returned by this method are immutable.

  Parameters:
    `name` - the name value to search for
  Returns:
    the HTML elements with the specified name attribute

### getElementsByIdAndOrName

    public java.util.List<HtmlElement> getElementsByIdAndOrName(java.lang.String idAndOrName)

  Returns the HTML elements with the specified string for their name or ID. If there are no elements with the specified name or ID, this method returns an empty list. Please note that lists returned by this method are immutable.

  Parameters:
    `idAndOrName` - the value to search for
  Returns:
    the HTML elements with the specified string for their name or ID

### toString

    public java.lang.String toString()

  Gives a basic representation for debugging purposes.

  Overrides:
    `toString` in class `java.lang.Object`
  Returns:
    a basic representation

### setFocusedElement

    public boolean setFocusedElement(HtmlElement newElement)

  Moves the focus to the specified element. This will trigger any relevant JavaScript event handlers.

  Parameters:
    `newElement` - the element that will receive the focus, use `null` to remove focus from any element
  Returns:
    true if the specified element now has the focus
  See Also:
    `getFocusedElement()`, `tabToNextElement()`, `tabToPreviousElement()`, `pressAccessKey(char)`, `WebAssert.assertAllTabIndexAttributesSet(HtmlPage)`

### setFocusedElement

    public boolean setFocusedElement(HtmlElement newElement,
                                     boolean windowActivated)

  Moves the focus to the specified element. This will trigger any relevant JavaScript event handlers.

  Parameters:
    `newElement` - the element that will receive the focus, use `null` to remove focus from any element
    `windowActivated` - - whether the enclosing window got focus resulting in specified element getting focus
  Returns:
    true if the specified element now has the focus
  See Also:
    `getFocusedElement()`, `tabToNextElement()`, `tabToPreviousElement()`, `pressAccessKey(char)`, `WebAssert.assertAllTabIndexAttributesSet(HtmlPage)`

### getFocusedElement

    public HtmlElement getFocusedElement()

  Returns the element with the focus or null if no element has the focus.

  Returns:
    the element with focus or null
  See Also:
    `setFocusedElement(HtmlElement)`

### getMetaTags

    protected java.util.List<HtmlMeta> getMetaTags(java.lang.String httpEquiv)

  Gets the meta tag for a given http-equiv value.

  Parameters:
    `httpEquiv` - the http-equiv value
  Returns:
    a list of `HtmlMeta`

### clone

    protected HtmlPage clone()

  Creates a clone of this instance, and clears cached state to be not shared with the original.

  Overrides:
    `clone` in class `SgmlPage`
  Returns:
    a clone of this instance

### cloneNode

    public HtmlPage cloneNode(boolean deep)

  Override cloneNode to add cloned elements to the clone, not to the original.

  Specified by:
    `cloneNode` in interface `org.w3c.dom.Node`
  Overrides:
    `cloneNode` in class `DomNode`

### addHtmlAttributeChangeListener

    public void addHtmlAttributeChangeListener(HtmlAttributeChangeListener listener)

  Adds an HtmlAttributeChangeListener to the listener list. The listener is registered for all attributes of all HtmlElements contained in this page.

  Parameters:
    `listener` - the attribute change listener to be added
  See Also:
    `removeHtmlAttributeChangeListener(HtmlAttributeChangeListener)`

### removeHtmlAttributeChangeListener

    public void removeHtmlAttributeChangeListener(HtmlAttributeChangeListener listener)

  Removes an HtmlAttributeChangeListener from the listener list. This method should be used to remove HtmlAttributeChangeListener that were registered for all attributes of all HtmlElements contained in this page.

  Parameters:
    `listener` - the attribute change listener to be removed
  See Also:
    `addHtmlAttributeChangeListener(HtmlAttributeChangeListener)`

### checkChildHierarchy

    protected void checkChildHierarchy(org.w3c.dom.Node newChild)
                                throws org.w3c.dom.DOMException

  Check for insertion errors for a new child node. This is overridden by derived classes to enforce which types of children are allowed.

  Overrides:
    `checkChildHierarchy` in class `DomNode`
  Parameters:
    `newChild` - the new child node that is being inserted below this node
  Throws:
    `org.w3c.dom.DOMException` - HIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not allow children of the type of the newChild node, or if the node to insert is one of this node's ancestors or this node itself, or if this node is of type Document and the DOM application attempts to insert a second DocumentType or Element node. WRONG_DOCUMENT_ERR: Raised if newChild was created from a different document than the one that created this node.

### isOnbeforeunloadAccepted

    public boolean isOnbeforeunloadAccepted()

  INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.

  Returns:
    true if the OnbeforeunloadHandler has accepted to change the page

### isBeingParsed

    public boolean isBeingParsed()

  Returns `true` if an HTML parser is operating on this page, adding content to it.

  Returns:
    `true` if an HTML parser is operating on this page, adding content to it

### refresh

    public Page refresh()
                 throws java.io.IOException

  Refreshes the page by sending the same parameters as previously sent to get this page.

  Returns:
    the newly loaded page.
  Throws:
    `java.io.IOException` - if an IO problem occurs

### writeInParsedStream

    public void writeInParsedStream(java.lang.String string)

  INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.

  Parses the given string as would it belong to the content being parsed at the current parsing position

  Parameters:
    `string` - the HTML code to write in place

### getSelection

    public org.w3c.dom.ranges.Range getSelection()

  INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.

  Returns:
    the current selection

### getNamespaces

    public java.util.Map<java.lang.String,java.lang.String> getNamespaces()

  Returns all namespaces defined in the root element of this page.

  The default namespace has a key of an empty string.

  Returns:
    namespaces

### setDocumentType

    protected void setDocumentType(DomDocumentType type)

  Sets the document type.

  Overrides:
    `setDocumentType` in class `SgmlPage`
  Parameters:
    `type` - the document type

### save

    public void save(java.io.File file)
              throws java.io.IOException

  Saves the current page with all images at the specified location. The default behavior removes all script elements.

  Parameters:
    `file` - file to write this page into
  Throws:
    `java.io.IOException` - If an error occurs

Copyright © 2002-2011 Gargoyle Software Inc.. All Rights Reserved.