Java 如何定位和写入textfield并使用HtmlUnit单击submit?

Java 如何定位和写入textfield并使用HtmlUnit单击submit?,java,html,http,htmlunit,Java,Html,Http,Htmlunit,我对HtmlUnit完全陌生,我真的不知道如何阅读和理解网站的页面来源。尽管如此,我还是编写了代码(从中学习)来尝试访问以下网站 然后我被卡住了,因为我不熟悉javascript。这就是我想要实现的目标: 我想在屏幕左侧菜单的文本字段中键入328 该网站 然后单击提交按钮 这样我就可以进入下一页了 public void testing() throws Exception { /* turn off annoying htmlunit warnings */

我对HtmlUnit完全陌生,我真的不知道如何阅读和理解网站的页面来源。尽管如此,我还是编写了代码(从中学习)来尝试访问以下网站

然后我被卡住了,因为我不熟悉javascript。这就是我想要实现的目标:

  • 我想在屏幕左侧菜单的文本字段中键入
    328
    该网站

  • 然后单击提交按钮

这样我就可以进入下一页了

public void testing() throws Exception {
           /* turn off annoying htmlunit warnings */
    java.util.logging.Logger.getLogger("com.gargoylesoftware").setLevel(java.util.logging.Level.OFF);
    try (final WebClient webClient = new WebClient(BrowserVersion.CHROME)) {
        final HtmlPage page = webClient.getPage("http://www.aastocks.com/en/stock/DetailQuote.aspx?&symbol=1");
        final HtmlDivision div = page.getHtmlElementById("LeftMenu_Button");
    }
}
更新:我通过在代码中添加一行代码来解决页面访问问题。但我仍然无法找到输入文本字段,键入一些输入并单击按钮,这样我就可以进入下一页

public void testing() throws Exception {
           /* turn off annoying htmlunit warnings */
    java.util.logging.Logger.getLogger("com.gargoylesoftware").setLevel(java.util.logging.Level.OFF);
    try (final WebClient webClient = new WebClient(BrowserVersion.CHROME)) {
        final HtmlPage page = webClient.getPage("http://www.aastocks.com/en/stock/DetailQuote.aspx?&symbol=1");
        final HtmlDivision div = page.getHtmlElementById("LeftMenu_Button");
    }
}

该网站有一个URL为
/:
的CSS,HtmlUnit没有正确处理该CSS,现在已在SVN中修复

请获取以下代码的工作原理:

    try (final WebClient webClient = new WebClient(BrowserVersion.CHROME)) {

        final HtmlPage page = webClient.getPage("http://www.aastocks.com/en/stock/DetailQuote.aspx?&symbol1");
        HtmlInput input = page.getHtmlElementById("PY_txt");
        input.type("328");

        final HtmlPage page2 = page.getHtmlElementById("imgHKStockSubmit").click();
        System.out.println(page2.getUrl());
        System.out.println(page2.asText());
    }