HtmlUnit-单击链接时执行JavaScriptAjax错误

问题描述

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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...