使用HtmlUnit调用JavaScript

使用HtmlUnit调用JavaScript,java,javascript,htmlunit,Java,Javascript,Htmlunit,我试图获取页面内容,javascript函数getWines返回。我试图从中获取信息的页面是。因此,我使用HtmlUnit并编写了以下代码: final WebClient webClient = new WebClient( BrowserVersion.INTERNET_EXPLORER_10); webClient.getOptions().setThrowExceptionOnScriptError(false); webClien

我试图获取页面内容,javascript函数getWines返回。我试图从中获取信息的页面是。因此,我使用HtmlUnit并编写了以下代码:

        final WebClient webClient = new WebClient(
            BrowserVersion.INTERNET_EXPLORER_10);
    webClient.getOptions().setThrowExceptionOnScriptError(false);
    webClient.getOptions().setJavaScriptEnabled(false);
    final HtmlPage page = webClient.getPage(url);
    String javaScriptCode = "getWines(1)";
    ScriptResult result = page.executeJavaScript(javaScriptCode);
    Page page1 = result.getNewPage();
    StringBuffer p = WebGet.getBuffPageContent(page1.getUrl().toString(), true);
    System.out.println(p.toString());

但这种方法似乎不起作用。我收到的是我在函数调用之前的同一个页面,它的源代码相同,所以我无法获得有关(例如)葡萄酒名称的信息。也许我完全错了?

只是猜测:您禁用了javascript setJavaScriptEnabledfalse,但几行之后,您希望HtmlUnit执行EjavaScript。我还没有研究HtmlUnit代码,但这听起来很合理。@Markus我改为true,但它仍然不起作用,因为JavaDoc executeJavaScript执行与在地址栏中输入javascript:getWines1相同的操作。在FF 28.x中,它会导致异常。你介意通过启用setThroweExceptionOnScriptError来允许脚本错误吗?@Markus,我允许脚本错误,但我没有得到任何与脚本相关的异常。