【问题标题】:Fill a html form without submit, just open the browser with fields filled. In JAVA无需提交即可填写 html 表单,只需打开已填写字段的浏览器即可。在 JAVA
【发布时间】:2012-07-13 06:13:20
【问题描述】:

我正在开发一个 JAVA SWING 应用程序,当我单击一个按钮时,我希望它打开一个浏览器页面,其中 HTML 表单字段已完全填充(包含我想从 JAVA 应用程序传递的数据),明白了吗?

此时我正在使用 HtmlUnit 库,但如果你知道更好的东西,我愿意接受建议!

这就是我所拥有的:

WebClient webClient = new WebClient();
HtmlPage page1 = webClient.getPage("http://www.google.com");
HtmlForm form = page1.getFormByName("search");
HtmlButton button = form.getButtonByName("submitSearch");
HtmlTextInput textField = form.getInputByName("searchTxtField");
textField.setValueAttribute("TEST VALUE");
HtmlPage page2 = button.click(); //final line

在我提交表单的最后一行,我希望它在“searchTxtField”中打开一个带有文本:“TEXT VALUE”的网络浏览器。

请帮帮我...

【问题讨论】:

    标签: java html forms browser htmlunit


    【解决方案1】:

    从 Java 6 开始,您可以使用 public void browse(URI uri)java.awt.Desktop 中的方法。您需要构建一个带有一些参数的 URI。

    try {
        URI uri = new URI("http://www.google.com/#q=TEST+VALUE&oq=TEST+VALUE");
        Desktop desktop = null;
        if (Desktop.isDesktopSupported()) {
            desktop = Desktop.getDesktop();
        }
        if (desktop != null)
            desktop.browse(uri);
    } catch (IOException ioe) {
        // log error
    }
    

    查看Google Search URL Parameters – Query String Anatomy

    【讨论】:

    • 在谷歌的情况下我可以做到这一点..因为他们使用方法 GET 来填充输入文本值。但就我而言,这是不可能的。但是,谢谢。
    【解决方案2】:

    HtmlUnit 不控制任何外部网络浏览器。它一个网络浏览器(没有任何图形用户界面)。

    使用Selenium 控制外部网络浏览器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-23
      • 1970-01-01
      • 2020-12-22
      • 2012-10-01
      • 1970-01-01
      • 2020-01-21
      • 2017-12-26
      相关资源
      最近更新 更多