HtmlUnit单击HtmlAnchor

问题描述

我正在将HtmlUnit版本2.43.0与Maven一起使用。

在成功登录具有用户名/密码并单击HtmlSubmitInput的站点后,下一个HtmlAnchor按钮使我感到难过。我不确定该怎么办。

该按钮如下所示:

<a class="DirectoryEntries_LoadMoreEntriesButton vx-button" onclick="$(this).text('Loading...')" data-remote="true" href="[redacted]/directory_entries/2">Load More</a>

我当前的代码是:

htmlPage = ((HtmlAnchor) htmlPage.getFirstByXPath("//a[contains(@class,'DirectoryEntries_LoadMoreEntriesButton vx-button')]")).click();
String page = htmlPage.asXml();

但是,该页面与之前的页面完全相同,只是将“ Load More”替换为“ Loading ...”。即使在多次Thread.sleep()webClient.waitForBackgroundJavaScript() 调用之后,该页面也将一直保持这种状态

在网站本身上,单击“加载更多”按钮时,它将替换为更多目录。最初有50个,但又增加了15个。

有人对此有解决方案吗?

解决方法

通过切换到Selenium(v3.141.59)解决了这个问题,几乎可以做同样的事情。我猜想HtmlUnit上的JS支持不是最好的。