Javascript 使用PhantomJS向下滚动直到页面结束

Javascript 使用PhantomJS向下滚动直到页面结束,javascript,scroll,phantomjs,Javascript,Scroll,Phantomjs,正如标题所说,我正在尝试使用PhantomJS向下滚动网页。就我所知: var i = 0; page.open(address, function () { window.setInterval(function() { i++; if(i<5) { page.evaluate(function() { window.document.body.scrollTop = document.body.scrollHe

正如标题所说,我正在尝试使用PhantomJS向下滚动网页。就我所知:

var i = 0;
page.open(address, function () {

   window.setInterval(function() {

      i++;
      if(i<5) {
         page.evaluate(function() {
            window.document.body.scrollTop = document.body.scrollHeight;
         });
      }
      else { // Timeout
         fs.write(dir, page.content, 'w');
         phantom.exit();
      }

   }, 1000); // Number of milliseconds to wait between scrolls  
});

我在这件事上有点不懂装懂,所以我希望能得到一些建议。有什么想法吗?

通常页面上有某种元素,当没有更多的项目可加载时,这些元素会消失或出现。你的页面就是这样吗?为什么你认为比较页面内容看是否有变化不是一个好的解决方案?我觉得很好。你可以通过检查页面上有多少项来轻松一点,但本质上是一样的。比较页面内容就像我说的那样有效,但如果页面内容在完全加载时发生变化,则不会。我只是觉得有更好的解决办法。例如:如果你不能向下滚动,那是因为你已经在底部了。
window.setInterval(function() {

   a = page.content;
   if (a == b) {
      console.log('END');
   } else {
      console.log('NO END');
   }

      ...
      fs.write(dir, page.content, 'w');
      phantom.exit();
   }

   b = page.content;
   a = b;

}, 1000); // Number of milliseconds to wait between scrolls