javascript - 为什么我的 phantomjs 脚本输出没有截图(命令行 args 版本)

标签 javascript phantomjs

我在这里修改了基本的 phantomjs 示例 http://phantomjs.org/screen-capture.html接受命令行参数。

当我通过 http://google.com作为参数 console.log 输出是正确的

0: index.js

1: http://google.com

但我的文件夹中没有任何 thumbnail.png 为什么?

    var page = require('webpage').create();

    var system = require('system');
    var args = system.args;

    var url;

    if (args.length === 1) {
      url = 'http://github.com/';
    } else {
      args.forEach(function(arg, i) {
        console.log(i + ': ' + arg);
        
        if (i > 0) {
          page.open(arg, function() {

              page.render('thumbnail' + '.png');
            
            
          });
        }
        
      });
    }

    phantom.exit();

最佳答案

page.open 是一个异步函数,因此 phantom.exit 在您的回调呈现缩略图之前被调用。

按照文档中的说明将 phantom.exit 移到回调中

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

关于javascript - 为什么我的 phantomjs 脚本输出没有截图(命令行 args 版本),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39369970/

相关文章:

java - 无法在 Java 中使用 phantomJS 处理警报

angularjs - 为什么多个 GET 请求无法通过 Protractor 测试?

python - httplib.BadStatusLine : '' on Linux but not Mac

Javascript foreach(锻炼兴趣)

javascript - 在 Windows 中需要 .js 文件

python - 如何从selenium page_source获取内容类型

javascript:当鼠标悬停到集群时,会有弹出窗口,但当放大时,集群会扩大,但弹出窗口仍然存在

javascript - 具有范围数值的输入框的 KeyUp 事件的 Jquery Regex

javascript - 如何在 JavaScript 中获取外部元素值

数组循环内的javascript切片