HtmlUnit
![]() | |
Initial release | May 22, 2002 |
---|---|
Stable release |
2.23
/ July 27, 2016 |
Written in | Java |
Operating system | Cross-platform (JVM) |
Available in | English |
Type | Web browser |
License | Apache License 2.0 |
Website | htmlunit.sourceforge.net |
HtmlUnit is a headless web browser written in Java. It allows high-level manipulation of websites from other Java code, including filling and submitting forms and clicking hyperlinks. It also provides access to the structure and the details within received web pages. HtmlUnit emulates parts of browser behaviour including the lower-level aspects of TCP/IP and HTTP. A sequence such as getPage(url)
, getLinkWith("Click here")
, click()
allows a user to navigate through hypertext and obtain web pages that include HTML, JavaScript, Ajax and cookies. This headless browser can deal with HTTPS security, basic http authentication, automatic page redirection and other HTTP headers. It allows Java test code to examine returned pages either as text, an XML DOM, or as collections of forms, tables, and links.[1]
The goal is to simulate real browsers; namely Chrome, Firefox ESR 38, Internet Explorer 8 and 11, and Edge (experimental).
The most common use of HtmlUnit is test automation of web pages, but sometimes it can be used for web scraping, or downloading website content.
Benefits
- Provides high-level API, taking away lower-level details away from the user.[2]
- Compared to other WebDriver implementations, HtmlUnitDriver is the fastest to implement.[3]
- It can be configured to simulate specific Browser.
Drawbacks
- Elements layout and rendering can not be tested.[4]
- The JavaScript support is still not complete. And this is usually the main area of enhancements.
Used technologies
- W3C DOM
- HTTP connection, using Apache HttpComponents
- JavaScript, using forked Rhino
- HTML Parsing, NekoHTML
- CSS: using CSS Parser
- XPath support, using Xalan
Libraries using HtmlUnit
See also
- Headless system
- PhantomJS a headless WebKit with JavaScript API
- Web scraping
- Web testing
- SimpleTest
- xUnit
- River Trail
- Selenium WebDriver
References
- ↑ "HtmlUnit Home". Retrieved 23 December 2010.
- ↑ "Next Generation Java Testing: TestNG and Advanced Concepts".
- ↑ "HtmlUnit Driver".
- ↑ "Testing HTML Unit".
Bibliography
- "Next Generation Java Testing: TestNG and Advanced Concepts". pp. 339– (subscription required)
Further reading
- Langer, A. "Extending HtmlUnit for test automatisation of Web applications using AJAX"; Betreuer/in (nen): T. Grechenig, M. Bernhart; 183/1, 2009. (subscription required)
- Massol, Vincent; Timothy M. O'Brien (2005). Maven: A Developer's Notebook. O'Reilly Media. pp. 83–86. ISBN 978-0-596-55297-8.
- Tahchiev, Petar; Felipe Leme; Vincent Massol (2010). "12. Presentation Layer Testing". JUnit in Action (2 ed.). Manning. pp. 190–208. ISBN 978-1-935182-02-3.
- Refactoring HTML.
- Enjoying Web Development with Tapestry.
- JavaServer Faces: The Complete Reference. (subscription required)