javascript - PhantomJS - 从许多 URL 获取屏幕截图

标签 javascript phantomjs

我在 capture.js 文件中有这段代码:

var page = require('webpage').create();
var ii = 1;
page.open('http://stackoverflow.com/', function() {page.render('capture_' + ii + '.png');}); ii++;
page.open('http://github.com/',        function() {page.render('capture_' + ii + '.png');}); ii++;
page.open('http://google.com/',        function() {page.render('capture_' + ii + '.png');}); ii++;
phantom.exit();

该代码不会产生任何结果。

如何编写 js 文件才能从 URL 列表中获取屏幕截图?

最佳答案

您可以这样做,因为 Javascript 本质上是异步的。仅当加载前一个页面(在回调中)时,您才应该打开一个新页面。

呈现三个页面的最简单方法可能是:

var page = require('webpage').create();
page.open('http://stackoverflow.com/', function() {
    page.render('capture_stackoverflow.png');
     page.open('http://github.com/',        function() {
        page.render('capture_github.png');
        page.open('http://google.com/',        function() {
            page.render('capture_google.png');
            phantom.exit();
        }); 
    }); 
}); 

看看官方render_multi_url.js例子。

关于javascript - PhantomJS - 从许多 URL 获取屏幕截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21146463/

相关文章:

jquery - 如何将 jQuery 与 phantomjs 一起使用

javascript - 无法使用 casperjs 评估和 __doPostBack 函数导航

python - PhantomJS - 连接到 GhostDriver 错误

javascript - 是否可以在不更改页面的情况下打开外部 URL - 类似于那些 javascript 图像查看器弹出窗口

javascript - 在 Aurelia 中防止 CSRF 攻击

javascript - NodeJs 中映射 2 个 Json 对象

javascript - 如何循环遍历数据并将值分配给 react 中的状态数组

jquery - Click 方法不适用于 Cucumber Phantomjs

javascript - 如何通过命令行将变量作为参数传递给 CasperJS 脚本?

javascript - 检查谓词的返回类型