HtmlUnit
HtmlUnit is a "GUI-Less browser for Java programs". It models HTML documents and provides an API that allows you to invoke pages, fill out forms, click links, etc... just like you do in your "normal" browser.
It has fairly good JavaScript support (which is constantly improving) and is able to work even with quite complex AJAX libraries, simulating Chrome, Firefox or Internet Explorer depending on the configuration used.
HtmlUnit is typically used for testing purposes or to retrieve information from web sites.
Features
Support for the HTTP and HTTPS protocols
Support for cookies
Ability to specify whether failing responses from the server should throw exceptions or should be returned as pages of the appropriate type (based on content type)
Support for submit methods POST and GET (as well as HEAD, DELETE, ...)
Ability to customize the request headers being sent to the server
Support for HTML responses
Wrapper for HTML pages that provides easy access to all information contained inside them
Support for submitting forms
Support for clicking links
Support for walking the DOM model of the HTML document
Proxy server support
Support for basic and NTLM authentication
Excellent JavaScript support
Project Homepage
Project News
Latest release Version 2.43.0 / August 8, 2020
For maven, you would add:
net.sourceforge.htmlunit
htmlunit
2.43.0
Latest CI build
The latest builds are available from our
Jenkins CI build server
If you use maven please add:
net.sourceforge.htmlunit
htmlunit
2.44.0-SNAPSHOT
You have to add the sonatype snapshot repository to your pom distributionManagement section also:
sonatype-nexus-snapshots
https://oss.sonatype.org/content/repositories/snapshots
Some insights
License
This project is licensed under the Apache 2.0 License