Java se: open the web page and click the button
I have a Java 7 program (using webstart technology, only applicable to Windows 7 / 8 computers)
I need to add a function so that my program clicks a button on a page with a known URL (HTTPS)
Some people suggested using WebKit SWT, but I went to their website and they said the project had stopped ( http://www.genuitec.com/about/labs.html )
Others say jxbrowser is the only option, but it looks like it's over $1300. It's crazy ( http://www.teamdev.com/jxbrowser/onlinedemo/ )
I'm looking for something simple, free, lightweight, able to open HTTPS links, parse HTML, access buttons through Dom and click it Maybe some JavaScript in case there is a JS handler
Thanks for your help.
Solution
You may be looking for htmlunit - a "Gui less browser for Java programs"
This is to open Google COM, use the form to search "htmlunit" and print the number of results
import com.gargoylesoftware.htmlunit.*; import com.gargoylesoftware.htmlunit.html.*; public class HtmlUnitFormExample { public static void main(String[] args) throws Exception { WebClient webClient = new WebClient(); HtmlPage page = webClient.getPage("http://www.google.com"); HtmlInput search@R_744_2419@ = page.getElementByName("q"); search@R_744_2419@.setValueAttribute("htmlunit"); HtmlSubmitInput googleSearchSubmitButton = page.getElementByName("btnG"); // sometimes it's "btnK" page=googleSearchSubmitButton.click(); HtmlDivision resultStatsDiv = page.getFirstByXPath("//div[@id='resultStats']"); System.out.println(resultStatsDiv.asText()); // About 309,000 results webClient.closeAllWindows(); } }
Other options are:
>Selenium: a browser like Firefox will open and operate. > Watij: a browser will also open, but in its own window. > Jsup: good parser But no JavaScript