PhantomJS-暂停/恢复javascript执行
我有一个PhantomJS脚本,我正试图使用它来生成一个特定网站的视频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 =
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
});