Der Intersult HtmlClient ist ein sehr einfacher virtueller Browser.
Beim Verwenden des HtmlClient werden immer Page-Objekte zurückgegeben. Die erste Page erhält man beim Aufruf der Methode begin, anschließend wieder bei navigate- oder submit-Aufrufen.
Die Page enthält den geparsten HTML-Inhalt, darin kann auf alle HTML-Elemente zugegriffen werden. Entweder über die Seitenhierarchie des DOM oder über XPath-Ausdrücke. Einige Elemente wie Form oder Submit haben spezielle Java-Implementierungen, um einfacher weitere Operationen durchführen zu können.
<dependency> <groupId>com.intersult</groupId> <artifactId>html</artifactId> <version>1.0-SNAPSHOT</version> </dependency>
HtmlClient client = new HtmlClient(new UrlClient()); Page page = client.begin(new URL("http://localhost/"), null, false); Assert.assertNotNull(page); Form form = (Form)page.getElement("//FORM[@id = 'header-login']"); Assert.assertNotNull(form); Input username = (Input)form.getElement(".//INPUT[@name = 'header-login:username']"); Assert.assertNotNull(username); username.setValue("test"); Input password = (Input)form.getElement(".//INPUT[@name = 'header-login:password']"); Assert.assertNotNull(password); password.setValue("test"); Submit submit = (Submit)form.getElement(".//INPUT[@type = 'submit']"); Page home = submit.submit(true);
HTML-Node | Java-Klasse |
---|---|
- | Page |
FORM | Form |
INPUT | Input |
INPUT[@type = 'submit'] | Submit |
BUTTON | Submit |
A | Link |
INPUT[@type = 'radio'] | SELECT | Checked |
document.evaluate("//TD[text() = 'Some Table Cell']", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue