【问题标题】:Java HtmlUnit click on anchor link does not work. How do I get the new page?Java HtmlUnit 单击锚链接不起作用。如何获取新页面?
【发布时间】: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" ]

我会继续研究这个问题并在这里发布我发现的内容。

【问题讨论】:

    标签: javascript java html web-scraping htmlunit


    【解决方案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() 再次被破坏。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-12
      • 2012-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多