微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

HtmlUnit-处理Ajax Jquery时出错

如何解决HtmlUnit-处理Ajax Jquery时出错

一个页面,我使用htmlUnit处理通过Ajax为div处理的许多内容。我已经尝试了一切,但是单击按钮后无法获得包含更改的新页面。 以下脚本中的代码似乎无法正常工作。 $(document).ready(function(){ ... });

请帮助我。谢谢

部分代码

WebClient client = new WebClient(browserVersion.FIREFOX_60);
client.getoptions().setJavaScriptEnabled(true);
client.getoptions().setThrowExceptionOnScriptError(false);
client.getoptions().setCssEnabled(false);
client.setAjaxController(new NicelyResynchronizingAjaxController());

HtmlPage paginaDePesquisaLicitacao = client.getPage("url");
client.waitForBackgroundJavaScript(5 * 1000);

HtmlForm形式=(HtmlForm)paginaDePesquisaLicitacao.getElementById(“ licitacaoPesquisaIdentificadorForm”); HtmlTextInput inputNumeroLicitacao = form.getInputByName(“ numeroLicitacao”);

    inputNumeroLicitacao.type(login);
    HtmlPage paginaCabecalhoLicitacao = ((HtmlSubmitInput) form.getInputByName("pesquisar")).click();
    client.waitForBackgroundJavaScript(10000);
    Thread.sleep(10*1000);  
 System.out.println(paginaCabecalhoLicitacao.asXml());

错误

ERROR 1364 --- [pool-2-thread-1] c.g.h.j.DefaultJavaScriptErrorListener   : Error during JavaScript execution

com.gargoylesoftware.htmlunit.ScriptException: ReferenceError: "$" is not defined. (script in https://www.licitacoes-e.com.br/aop/pesquisar-licitacao.aop?opcao=preencherPesquisarIdentificador from (30,32) to (34,10)#31)
    at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:883)
    at net.sourceforge.htmlunit.corejs.javascript.Context.call(Context.java:617)
    at net.sourceforge.htmlunit.corejs.javascript.ContextFactory.call(ContextFactory.java:534)
    at com.gargoylesoftware.htmlunit.javascript.HtmlUnitContextFactory.callSecured(HtmlUnitContextFactory.java:336)
    at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.execute(JavaScriptEngine.java:763)
    at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.execute(JavaScriptEngine.java:739)
    at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.execute(JavaScriptEngine.java:730)
    at com.gargoylesoftware.htmlunit.html.HtmlPage.executeJavaScript(HtmlPage.java:922)
    at com.gargoylesoftware.htmlunit.html.HtmlScript.executeInlinescriptIfNeeded(HtmlScript.java:306)
    at com.gargoylesoftware.htmlunit.html.HtmlScript.executeScriptIfNeeded(HtmlScript.java:396)
    at com.gargoylesoftware.htmlunit.html.HtmlScript$2.execute(HtmlScript.java:236)
    at com.gargoylesoftware.htmlunit.html.HtmlScript.onAllChildrenAddedToPage(HtmlScript.java:257)
    at com.gargoylesoftware.htmlunit.html.HTMLParser$HtmlUnitDOMBuilder.endElement(HTMLParser.java:792)
    at org.apache.xerces.parsers.AbstractSAXParser.endElement(UnkNown Source)
    at com.gargoylesoftware.htmlunit.html.HTMLParser$HtmlUnitDOMBuilder.endElement(HTMLParser.java:748)
    at net.sourceforge.htmlunit.cyberneko.HTMLTagBalancer.callEndElement(HTMLTagBalancer.java:1175)
    at net.sourceforge.htmlunit.cyberneko.HTMLTagBalancer.endElement(HTMLTagBalancer.java:1115)
    at net.sourceforge.htmlunit.cyberneko.filters.DefaultFilter.endElement(DefaultFilter.java:219)
    at net.sourceforge.htmlunit.cyberneko.filters.NamespaceBinder.endElement(NamespaceBinder.java:303)
    at net.sourceforge.htmlunit.cyberneko.HTMLScanner$ContentScanner.scanEndElement(HTMLScanner.java:3146)
    at net.sourceforge.htmlunit.cyberneko.HTMLScanner$ContentScanner.scan(HTMLScanner.java:2074)
    at net.sourceforge.htmlunit.cyberneko.HTMLScanner.scanDocument(HTMLScanner.java:922)
    at net.sourceforge.htmlunit.cyberneko.HTMLConfiguration.parse(HTMLConfiguration.java:438)
    at net.sourceforge.htmlunit.cyberneko.HTMLConfiguration.parse(HTMLConfiguration.java:389)
    at org.apache.xerces.parsers.XMLParser.parse(UnkNown Source)
    at com.gargoylesoftware.htmlunit.html.HTMLParser$HtmlUnitDOMBuilder.parse(HTMLParser.java:991)
    at com.gargoylesoftware.htmlunit.html.HTMLParser.parse(HTMLParser.java:246)
    at com.gargoylesoftware.htmlunit.html.HTMLParser.parseHtml(HTMLParser.java:190)
    at com.gargoylesoftware.htmlunit.DefaultPageCreator.createHtmlPage(DefaultPageCreator.java:269)
    at com.gargoylesoftware.htmlunit.DefaultPageCreator.createPage(DefaultPageCreator.java:160)
    at com.gargoylesoftware.htmlunit.WebClient.loadWebResponseInto(WebClient.java:534)
    at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:400)
    at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:317)
    at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:469)
    at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:450)
    at br.com.avengers.vista.services.impl.BotELicitacaoServiceImpl.AnaliseComprasNet(BotELicitacaoServiceImpl.java:148)
    at br.com.avengers.vista.services.impl.BotELicitacaoServiceImpl.buscaClientesComprasNet(BotELicitacaoServiceImpl.java:97)
    at br.com.avengers.vista.services.impl.BotELicitacaoServiceImpl$$FastClassBySpringcglib$$4e224117.invoke(<generated>)
    at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
    at org.springframework.aop.framework.cglibAopProxy$DynamicAdvisedInterceptor.intercept(cglibAopProxy.java:649)
    at br.com.avengers.vista.services.impl.BotELicitacaoServiceImpl$$EnhancerBySpringcglib$$e07ccf12.buscaClientesComprasNet(<generated>)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:65)
    at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.runAndReset$$$capture(FutureTask.java:308)
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:748)
Caused by: net.sourceforge.htmlunit.corejs.javascript.EcmaError: ReferenceError: "$" is not defined. (script in https://www.licitacoes-e.com.br/aop/pesquisar-licitacao.aop?opcao=preencherPesquisarIdentificador from (30,10)#31)
    at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.constructError(ScriptRuntime.java:4334)
    at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.constructError(ScriptRuntime.java:4312)
    at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.notFoundError(ScriptRuntime.java:4406)
    at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.getNameFunctionAndThis(ScriptRuntime.java:2486)
    at net.sourceforge.htmlunit.corejs.javascript.Interpreter.interpretLoop(Interpreter.java:1511)
    at net.sourceforge.htmlunit.corejs.javascript.Interpreter.interpret(Interpreter.java:1010)
    at net.sourceforge.htmlunit.corejs.javascript.InterpretedFunction.call(InterpretedFunction.java:111)
    at net.sourceforge.htmlunit.corejs.javascript.ContextFactory.doTopCall(ContextFactory.java:424)
    at com.gargoylesoftware.htmlunit.javascript.HtmlUnitContextFactory.doTopCall(HtmlUnitContextFactory.java:322)
    at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3628)
    at net.sourceforge.htmlunit.corejs.javascript.InterpretedFunction.exec(InterpretedFunction.java:123)
    at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$2.doRun(JavaScriptEngine.java:754)
    at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:868)
    ... 54 common frames omitted

解决方法

好像您使用的是HtmlUnit的旧版本。如果您仍然遇到问题,请尝试使用最新版本并在github上打开一个问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。