htmlunit-error单击链接时执行javascript(ajax)

ecbunoof  于 2021-07-05  发布在  Java
关注(0)|答案(0)|浏览(299)

我是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=

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题