div上的HtmlUnit click()不会触发JavaScript

时间:2017-01-08 08:39:31

标签: javascript java htmlunit

我试图从这个网站获取所有图片:http://web.archive.org/web/20160110012916/http://habibemaia.com/。我几乎可以通过收集所有" src"标签和从那里下载,但主要图片有问题,通过时间或点击事件javascript更改。我设置了这样的webclient:

HtmlPage newPage = div.click();
DomNodeList<DomElement> newImages = newPage.getElementsByTagName("img");
for (DomElement img : newImages) {
    if (img.hasAttribute("src")) {
        newImagesStrings.add(img.getAttribute("src"));
        System.out.println("Image added: "+img.getAttribute("src"));
    }
}

在我得到div之后,我尝试使用这样的点击:

webClient.waitForBackgroundJavaScript(3000);

如果我在浏览器中点击此div,则会出现一个新图像。不幸的是,此代码不会触发更改图像的javascript。我尝试过使用

find_package

点击()之后,如其他地方所建议,但没有运气。页面不会改变。现在我完全没有想法。谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

webClient.waitForBackgroundJavaScript(15000);
webClient.waitForBackgroundJavaScriptStartingBefore(5000);

都没有选项设置。如果您在执行某些操作后调用它们,则只有意义 - 从代码的设置部分中删除它。

关于图像:我用firebug快速分析了页面。对我来说,看起来所有图像都是代码的一部分,javascript只能切换可见性(带有一些奇特的效果)。

可能是这样的:

  • 找到类'cameraCont'
  • 的div
  • 使用样式'cameraSlide'
  • 迭代所有孩子
  • 每个div都有一个指向不同图像的img孩子