加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java SE:打开网页并单击按钮

发布时间:2020-12-14 17:43:35 所属栏目:Java 来源:网络整理
导读:我有一个 Java 7程序(使用WebStart技术,仅适用于Windows 7/8计算机). 我需要添加一个函数,以便我的程序单击具有已知URL(https)的页面上的按钮. 有些人建议使用WebKit SWT,但我去了他们的网站,他们说该项目已经停止. (http://www.genuitec.com/about/labs.htm
我有一个 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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读