如何使用phantomjs通过动态数据可视化进行屏幕截图

时间:2015-06-19 16:25:11

标签: javascript phantomjs screenshot

当我按照本教程(http://phantomjs.org/screen-capture.html)进行屏幕捕获时,我遇到了一些关于动态数据可视化的问题。

在该教程中,它使用了一些代码:

var page = require('webpage').create();
page.open('http://localhost:8080/index.html', function() {
  page.render('screenshot.png');
  phantom.exit();
});

但这似乎只适用于静态页面。我想知道我是否有一些用户交互并改变了该页面(如鼠标点击更改颜色等),怎么能我捕获哪个显示当前屏幕?< / p>

如果幻影可以以这种方式工作,那么是否有人会建议其他解决方案

1 个答案:

答案 0 :(得分:1)

当然,只需在page.open()之后和page.render()之前添加所需的功能。

page.open('http://localhost:8080/index.html', function() {

  /**
   * Add your events and actions here...
   * or call JS functions of the page itself...
   */

  page.evaluate(function() {

    /**
     * Inject a <style text/css> tag in the head,
     * which set the bgcolor
     */  

      var style = document.createElement('style'),
      text = document.createTextNode('body { background: red }');
      style.setAttribute('type', 'text/css');
      style.appendChild(text);
      document.head.insertBefore(style, document.head.firstChild);

  });

  page.render('screenshot.png');
  phantom.exit();
});

请记住,您正在使用Javascript,并且可以注入任意帮助程序脚本,如CasperJS或jQuery,并在加载的页面上使用它们的功能。

获取灵感: