我有一个
Java 7程序(使用WebStart技术,仅适用于Windows 7/8计算机).
我需要添加一个函数,以便我的程序单击具有已知URL(https)的页面上的按钮.
有些人建议使用WebKit SWT,但我去了他们的网站,他们说该项目已经停止. (http://www.genuitec.com/about/labs.html)
其他人说JxBrowser是唯一的选择,但看起来它超过1300美元这是疯了. (http://www.teamdev.com/jxbrowser/onlinedemo/)
我正在寻找简单,免费,轻量级的东西,能够打开HTTPS链接,解析HTML,通过DOM访问按钮并单击它.也许是一些JavaScript,以防有JS处理程序.
谢谢你的帮助.
解决方法
您可能正在寻找
HtmlUnit – 一个“用于Java程序的GUI-Less浏览器”.
这是打开google.com的示例代码,使用表单搜索“htmlunit”并打印结果数量.
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 searchBox = page.getElementByName("q"); searchBox.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(); } }
其他选择是:
> Selenium:将打开像Firefox这样的浏览器并进行操作.
> Watij:也将打开一个浏览器,但在自己的窗口中.
> Jsoup:好的解析器.但是没有JavaScript.