我尝试使用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有执行权限。请帮助我
答案 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)