WebAPI is a Java library for interacting with dynamic web pages. It provides methods for submitting forms (while retaining preset field values such as hidden fields and selects), downloading files and navigating using links. It is built using XPath for element selection, the Apache HTTP Client for HTTP communication and JTidy for HTML parsing. Together this makes up a solid, flexible and powerful toolkit for perfoming complex web scraping and testing. By allowing WebAPI to submit forms and automatically detect default values, it can be used even past login pages with dynamic hidden fields, thus allowing quick development of applications that need to get access to data only available on password-protected websites.
It is an almost direct port of the PHP Browser class here: https://github.com/Jonhoo/PHP-Browser