2

有人知道如何使用 HTML 单元驱动程序滚动页面吗?请让我知道向下滚动页面直到使用 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)", "");

希望有人可以帮助我...

4

2 回答 2

1

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

于 2013-08-01T12:27:53.900 回答
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 没有足够的支持。

于 2015-11-20T10:13:38.550 回答