即使在启用javascript后,向下滚动页面的HtmlUnitDrivers也无法在java中运行

时间:2013-07-17 17:04:12

标签: java selenium htmlunit

有没有人知道如何使用HTML Unit驱动程序滚动页面? 请告诉我最新的方法是向下滚动页面,直到使用HTML单元驱动程序加载最后一个元素?

我已经在HTML单元驱动程序中尝试了所有这些可能性,但看起来在页面向下滚动时实际上没有任何内容加载页面。基本上,页面根本没有向下滚动...

成功登录后,我正在尝试向下滚动页面,直到最后一个元素并获取页面源。

代码:

      htmlUnitdriver.setJavascriptEnabled(true);

    //htmlUnitdriver.executeScript("scroll(0,300);");

    //htmlUnitdriver.executeScript("window.scrollTo(0, document.body.scrollHeight);");

    //htmlUnitdriver.executeScript("window.scrollBy(0,3000)", "");

    //((JavascriptExecutor) htmlUnitdriver).executeScript("window.scrollBy(0,20000)", "");

希望有人能帮助我...

2 个答案:

答案 0 :(得分:1)

我还想知道Selenium HtmlUnitDriver是否提供了向下滚动页面的任何工具,即使实际页面没有在浏览器中呈现。 只有可以滚动页面,我才能在页面上获取新记录。 如果您能找到解决方案,请分享。

答案 1 :(得分:1)

我也尝试使用HtmlUnitDriver滚动网页,代码如下:

jse = (JavascriptExecutor)wd;
        //((JavascriptExecutor)wd).executeScript("window.scroll(0, 250));");
        log.info("Scrolling... ");
        //jse.executeScript("window.scroll(0,Math.max(document.documentElement.scrollHeight,document.body.scrollHeight,document.documentElement.clientHeight));");
        //jse.executeScript("window.scrollTo(0, Math.max(document.documentElement.scrollHeight,document.body.scrollHeight,document.documentElement.clientHeight));");
        //jse.executeScript("window.scrollTo(0, Math.max(document.body.scrollHeight, document.body.offsetHeight, document.documentElement.clientHeight, document.documentElement.scrollHeight, document.documentElement.offsetHeight));");
        //jse.executeScript("window.scrollBy(0,3000)", "");
         wd.executeScript("window.scrollBy(0,3000)", new Object[] { "" });

但是上述任何代码段都没有成功(通过取消注释每个代码片段)。 对于我的要求,滚动非常重要。
刚刚得到一些与PhantomJS不同的信息,HtmlUnitDriver对JavaScript没有足够的支持。