Phantomjs没有创建截图

时间:2014-02-18 14:07:21

标签: php screenshot phantomjs

我尝试使用phantomjs创建一个网页截图,但是它结果是一个空白的图像。我正在使用Fedora OS。这是我的javascript。

screen.js

        var WebPage = require('webpage');
        page = WebPage.create();
        page.open('http://google.com');
        page.onLoadFinished = function() {
        page.render('googleScreenShot' + '.png');
        phantom.exit();}

这是我的PHP代码

shot.php

     $exec = '/var/www/html/test/bin/phantomjs  /var/www/html/test/screen.js'; 
     $escaped_command = escapeshellcmd($exec);
     exec($escaped_command);

但是创建的图像是空白的.phantomjs有执行权限。请帮助我

3 个答案:

答案 0 :(得分:3)

我不确定但这可行,试试吧

    var WebPage = require('webpage');
    page = WebPage.create();
    page.open('http://google.com');
    page.onLoadFinished = function() {
            window.setTimeout(function () {
            page.render('googleScreenShot' + '.png');
            phantom.exit();
          }, 2000);
    }

答案 1 :(得分:0)

您遇到问题,因为代码执行下一行代码的时间比page.onLoadStarted为真的phantomjs日志记录更快。

简单而干净的解决方法是在每个函数之间添加100毫秒的时间间隔并将所有代码放入函数中,检查Vijay Boyapati方法以获得更多说明:https://stackoverflow.com/a/9256079/1738230

答案 2 :(得分:0)

在处理这个问题时,我完成了一个代码模块,如下所示:

link

您可以在本地下载,然后通过命令

调用它
UITableViewDelegate