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 单击锚链接不起作用。如何获取新页面?的主要内容,如果未能解决你的问题,请参考以下文章

iframe-resizer JS 库:子锚链接不工作 w。 iFrame 父级

停止加载 Vue 页面,直到加载数据(获取)

WordPress 分页 - 添加锚链接

Java和HTMLUnit:如何点击提交按钮?

Java HTMLUnit 测试导航按钮

Angular 2,使用 href='#' 处理锚链接