一尘不染

Java SE:打开网页,然后单击一个按钮

java

我有一个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访问按钮并单击它的东西。如果有JS处理程序,也许还有一些JavaScript。

谢谢你的帮助。


阅读 190

收藏
2020-12-03

共1个答案

一尘不染

您可能正在寻找HtmlUnit-一种 “用于Java程序的无GUI浏览器”

这是打开的示例代码,使用该表单进行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。
2020-12-03