Java HtmlUnit 单击锚链接不起作用。如何获取新页面?
Posted
技术标签:
【中文标题】Java HtmlUnit 单击锚链接不起作用。如何获取新页面?【英文标题】:Java HtmlUnit click on anchor link does not work. How do I get the new page? 【发布时间】:2016-08-18 06:12:03 【问题描述】:我正在尝试使用 htmlUnit 在网站上单击“更多”锚标记以展开列表,直到更多锚标记不存在为止。
page = client.getPage(url);
HtmlAnchor anchor;
while((anchor = page.getFirstByXPath("//a[@class='load-more list']")) != null)
page = (HtmlPage) anchor.getPage();
我也试过page = anchor.click();
System.out.println(anchor)
显示
HtmlAnchor[ 一个 href="/guideitem/list/?id=g407&requestType=browse&filter=ZmlsdGVyPXMlM2FmcmVlJmxpbWl0PTMw" class="加载更多列表" data-hijax="false" ]
我会继续研究这个问题并在这里发布我发现的内容。
【问题讨论】:
【参考方案1】:我遇到了类似的问题,希望对您有所帮助。 在我们禁用 WebClient 上的 CSS 后,它“自行解决”:
webClient.getOptions().setCssEnabled(false);
我的主播是:
<div class="my-anchors-parent-class"/>
<a href="javascript:void(0) class="text" id="buttonSearch" style="display: block;">Search</a>
</div>
它有一些 JQuery 将 .click() 处理程序附加到它,它根据我的锚的父级的“类”属性执行操作:
$('.my-anchor's-parent-class').each(function ()
$(this).children('a').click(function ()
// if parent has another given class appended, call .myFunction(this)
// else, call other function
);
);
当我们重新启用 CSS 时,.click() 再次被破坏。
【讨论】:
以上是关于Java HtmlUnit 单击锚链接不起作用。如何获取新页面?的主要内容,如果未能解决你的问题,请参考以下文章