我是htmlunit获取信息的一个使用javascript(ajax)的页面e意识到html代码在每次点击链接时变化很大。但我遵循文档中的所有内容,无法执行ajax工作并获得页面更改。这对我的工作很重要。请帮帮我!
我使用的是htmlunit版本2.43
我的零件代码:
WebClient client = new WebClient(BrowserVersion.FIREFOX_68);
client.getOptions().setJavaScriptEnabled(true);
client.getOptions().setThrowExceptionOnScriptError(false);
client.getOptions().setCssEnabled(false);
client.setAjaxController(new NicelyResynchronizingAjaxController());
// Here a get Page paginaAfterConsultaIdentificador
HtmlAnchor linkConsultaLote = (HtmlAnchor) paginaAfterConsultaIdentificador.getByXPath("//ul[@class='dropdownBB_content']//a").get(1);
HtmlPage paginaAfterConsultaIdentificadorCaptcha= linkConsultaLote.click();
client.waitForBackgroundJavaScript(5 * 1000);
//But the page doesn't change. I don't know if the error is in the javascript or css
System.out.println(paginaAfterConsultaIdentificadorCaptcha.asXml());
当我单击锚定后,在日志中显示错误:
2020-09-04 15:01:14.204 ERROR 2544 --- [pool-2-thread-1] c.g.h.j.DefaultJavaScriptErrorListener : Error during JavaScript execution
com.gargoylesoftware.htmlunit.ScriptException: Exception invoking getScreenY
at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:929)
at net.sourceforge.htmlunit.corejs.javascript.Context.call(Context.java:619)
at net.sourceforge.htmlunit.corejs.javascript.ContextFactory.call(ContextFactory.java:537)
at com.gargoylesoftware.htmlunit.javascript.HtmlUnitContextFactory.callSecured(HtmlUnitContextFactory.java:354)
at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.callFunction(JavaScriptEngine.java:858)
at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.callFunction(JavaScriptEngine.java:830)
at com.gargoylesoftware.htmlunit.html.HtmlPage.executeJavaScriptFunction(HtmlPage.java:2607)
at com.gargoylesoftware.htmlunit.html.HtmlPage.executeJavaScriptFunction(HtmlPage.java:2600)
at com.gargoylesoftware.htmlunit.javascript.host.event.EventListenersContainer.executeEventListeners(EventListenersContainer.java:342)
at com.gargoylesoftware.htmlunit.javascript.host.event.EventListenersContainer.executeBubblingListeners(EventListenersContainer.java:361)
at com.gargoylesoftware.htmlunit.javascript.host.event.EventTarget.fireEvent(EventTarget.java:189)
at com.gargoylesoftware.htmlunit.html.DomElement.lambda$fireEvent$0(DomElement.java:1463)
at net.sourceforge.htmlunit.corejs.javascript.Context.call(Context.java:619)
at net.sourceforge.htmlunit.corejs.javascript.ContextFactory.call(ContextFactory.java:537)
at com.gargoylesoftware.htmlunit.javascript.HtmlUnitContextFactory.callSecured(HtmlUnitContextFactory.java:354)
at com.gargoylesoftware.htmlunit.html.DomElement.fireEvent(DomElement.java:1463)
at com.gargoylesoftware.htmlunit.html.DomElement.doMouseEvent(DomElement.java:1405)
at com.gargoylesoftware.htmlunit.html.DomElement.mouseUp(DomElement.java:1335)
at com.gargoylesoftware.htmlunit.html.DomElement.click(DomElement.java:984)
at com.gargoylesoftware.htmlunit.html.DomElement.click(DomElement.java:898)
at com.gargoylesoftware.htmlunit.html.DomElement.click(DomElement.java:879)
at com.gargoylesoftware.htmlunit.html.DomElement.click(DomElement.java:860)
at br.com.avengers.vista.services.impl.BotELicitacaoServiceImpl.AnaliseComprasNet(BotELicitacaoServiceImpl.java:174)
at br.com.avengers.vista.services.impl.BotELicitacaoServiceImpl.buscaClientesComprasNet(BotELicitacaoServiceImpl.java:100)
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$$c764e108.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: java.lang.RuntimeException: Exception invoking getScreenY
at net.sourceforge.htmlunit.corejs.javascript.MemberBox.invoke(MemberBox.java:214)
at net.sourceforge.htmlunit.corejs.javascript.ScriptableObject$GetterSlot.getValue(ScriptableObject.java:348)
at net.sourceforge.htmlunit.corejs.javascript.ScriptableObject.get(ScriptableObject.java:478)
at com.gargoylesoftware.htmlunit.javascript.SimpleScriptable.get(SimpleScriptable.java:79)
at net.sourceforge.htmlunit.corejs.javascript.ScriptableObject.getProperty(ScriptableObject.java:2352)
at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.getObjectElem(ScriptRuntime.java:1562)
at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.getObjectElem(ScriptRuntime.java:1543)
at net.sourceforge.htmlunit.corejs.javascript.Interpreter.doGetElem(Interpreter.java:2437)
at net.sourceforge.htmlunit.corejs.javascript.Interpreter.interpretLoop(Interpreter.java:1484)
at net.sourceforge.htmlunit.corejs.javascript.Interpreter.interpret(Interpreter.java:1013)
at net.sourceforge.htmlunit.corejs.javascript.InterpretedFunction.call(InterpretedFunction.java:111)
at net.sourceforge.htmlunit.corejs.javascript.ContextFactory.doTopCall(ContextFactory.java:427)
at com.gargoylesoftware.htmlunit.javascript.HtmlUnitContextFactory.doTopCall(HtmlUnitContextFactory.java:340)
at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3640)
at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$3.doRun(JavaScriptEngine.java:851)
at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:914)
... 41 common frames omitted
Caused by: java.lang.NoSuchMethodError: org.apache.commons.lang3.StringUtils.countMatches(Ljava/lang/CharSequence;C)I
at com.gargoylesoftware.htmlunit.javascript.host.css.ComputedCSSStyleDeclaration.getEmptyHeight(ComputedCSSStyleDeclaration.java:1258)
at com.gargoylesoftware.htmlunit.javascript.host.css.ComputedCSSStyleDeclaration.getCalculatedHeight(ComputedCSSStyleDeclaration.java:1185)
at com.gargoylesoftware.htmlunit.javascript.host.css.ComputedCSSStyleDeclaration.getCalculatedHeight(ComputedCSSStyleDeclaration.java:1151)
at com.gargoylesoftware.htmlunit.javascript.host.css.ComputedCSSStyleDeclaration.getTop(ComputedCSSStyleDeclaration.java:1402)
at com.gargoylesoftware.htmlunit.javascript.host.css.ComputedCSSStyleDeclaration.getContentHeight(ComputedCSSStyleDeclaration.java:1321)
at com.gargoylesoftware.htmlunit.javascript.host.css.ComputedCSSStyleDeclaration.getCalculatedHeight(ComputedCSSStyleDeclaration.java:1178)
at com.gargoylesoftware.htmlunit.javascript.host.css.ComputedCSSStyleDeclaration.getCalculatedHeight(ComputedCSSStyleDeclaration.java:1151)
at com.gargoylesoftware.htmlunit.javascript.host.css.ComputedCSSStyleDeclaration.getContentHeight(ComputedCSSStyleDeclaration.java:1321)
at com.gargoylesoftware.htmlunit.javascript.host.css.ComputedCSSStyleDeclaration.getCalculatedHeight(ComputedCSSStyleDeclaration.java:1178)
at com.gargoylesoftware.htmlunit.javascript.host.css.ComputedCSSStyleDeclaration.getCalculatedHeight(ComputedCSSStyleDeclaration.java:1151)
at com.gargoylesoftware.htmlunit.javascript.host.css.ComputedCSSStyleDeclaration.getTop(ComputedCSSStyleDeclaration.java:1402)
at com.gargoylesoftware.htmlunit.javascript.host.css.ComputedCSSStyleDeclaration.getContentHeight(ComputedCSSStyleDeclaration.java:1321)
at com.gargoylesoftware.htmlunit.javascript.host.css.ComputedCSSStyleDeclaration.getCalculatedHeight(ComputedCSSStyleDeclaration.java:1178)
at com.gargoylesoftware.htmlunit.javascript.host.css.ComputedCSSStyleDeclaration.getCalculatedHeight(ComputedCSSStyleDeclaration.java:1151)
at com.gargoylesoftware.htmlunit.javascript.host.css.ComputedCSSStyleDeclaration.getContentHeight(ComputedCSSStyleDeclaration.java:1321)
at com.gargoylesoftware.htmlunit.javascript.host.css.ComputedCSSStyleDeclaration.getCalculatedHeight(ComputedCSSStyleDeclaration.java:1178)
at com.gargoylesoftware.htmlunit.javascript.host.css.ComputedCSSStyleDeclaration.getCalculatedHeight(ComputedCSSStyleDeclaration.java:1151)
at com.gargoylesoftware.htmlunit.javascript.host.css.ComputedCSSStyleDeclaration.getTop(ComputedCSSStyleDeclaration.java:1402)
at com.gargoylesoftware.htmlunit.javascript.host.css.ComputedCSSStyleDeclaration.getContentHeight(ComputedCSSStyleDeclaration.java:1321)
at com.gargoylesoftware.htmlunit.javascript.host.css.ComputedCSSStyleDeclaration.getCalculatedHeight(ComputedCSSStyleDeclaration.java:1178)
at com.gargoylesoftware.htmlunit.javascript.host.css.ComputedCSSStyleDeclaration.getCalculatedHeight(ComputedCSSStyleDeclaration.java:1151)
at com.gargoylesoftware.htmlunit.javascript.host.css.ComputedCSSStyleDeclaration.getTop(ComputedCSSStyleDeclaration.java:1402)
at com.gargoylesoftware.htmlunit.javascript.host.html.HTMLElement.getOffsetTop(HTMLElement.java:1867)
at com.gargoylesoftware.htmlunit.javascript.host.html.HTMLElement.getPosY(HTMLElement.java:1809)
at com.gargoylesoftware.htmlunit.javascript.host.event.MouseEvent.getScreenY(MouseEvent.java:238)
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 net.sourceforge.htmlunit.corejs.javascript.MemberBox.invoke(MemberBox.java:188)
... 56 common frames omitted
2020-09-04 15:01:16.676 INFO 2544 --- [pool-2-thread-1] .g.h.NicelyResynchronizingAjaxController : Re-synchronized call to https://www.licitacoes-e.com.br/aop/listar-lotes.aop?opcao=listarLotesPreCaptcha&numeroLicitacao=824678&numeroLoteInicial=0&numeroLoteFinal=
暂无答案!
目前还没有任何答案,快来回答吧!