PhantomJS-暂停/恢复javascript执行

PhantomJS-暂停/恢复javascript执行,javascript,jquery,webkit,jquery-animate,phantomjs,Javascript,Jquery,Webkit,Jquery Animate,Phantomjs,我有一个PhantomJS脚本,我正试图使用它来生成一个特定网站的视频 var page = require('webpage').create(); page.viewportSize = { width: 1280, height: 720 }; page.open('http://my-awesome-site.whatever', function() { var fps = 30; var seconds = 10; var elapsed =

我有一个PhantomJS脚本,我正试图使用它来生成一个特定网站的视频

var page = require('webpage').create();
page.viewportSize = {
    width: 1280,
    height: 720
};
page.open('http://my-awesome-site.whatever', function() {
    var fps = 30;
    var seconds = 10;
    var elapsed = 0;
    var current = 0;

    takeScreenShot();

    function takeScreenShot() {
        if (elapsed < seconds * 1000) {
            page.render('screenshot_' + (current++) + '.png');
            elapsed += 1000 / fps;
            setTimeout(takeScreenShot, 1000 / fps);
        }
        else {
            phantom.exit();
        }
    }
});

但遗憾的是,我在他们的api文档中没有看到类似的内容。

如果页面看起来不太依赖JS,您可以设置
page.settings.javascriptEnabled=false
。 请注意,您需要在第一次调用之前定义设置,因为它们只评估一次,例如:

var page = require('webpage').create();
page.settings = {
    javascriptEnabled=false
}
见:

如果它不符合您的需要,您需要深入页面的代码以找到停止动画的方法(使用浏览器的控制台)。一旦知道需要做什么,只需在Phantom中计算命令

page.open('http://my-awesome-site.whatever', function() {
  var stopScripts = page.evaluate(function() {
     // do whatever you need to stop execution
     return true;
  });
  // ... take your screenshots
});

禁用javascript不起作用,因为我需要在截图之间恢复执行。你的第二个建议可能行得通,我可以在页面上添加一些全局暂停/恢复功能,但在这一点上需要添加很多。我希望有一个更简单的方法。
page.open('http://my-awesome-site.whatever', function() {
  var stopScripts = page.evaluate(function() {
     // do whatever you need to stop execution
     return true;
  });
  // ... take your screenshots
});