phantomjs 网页截图及测试工具

phantomjs 是WebKit的服务器端JavaScript API,可以很模样浏览器进行抓取、分析、截图、网络性能监控、跟踪页面加载情况。

一些大名的开源软件也在用phantomjs进行测试,比如:

Bootstrap、CodeMirror、Ember.js、Grunt、Modernizr、YUI3、Zepto、Durandaljs

快速使用:

下载:http://phantomjs.org/download.html, 我下载的是mac版本,里面bin/phantomjs 脚本已生成好。

也有github版本,下载下来需要自己编译。建议直接下载包,本地就可以使用了。

sudo cp bin/phantomjs /usr/bin/phantomjs
phantomjs -v

里面的examples 例子有很多,拿一个例子测试下

phantomjs examples/rasterize.js http://www.ffeeii.com ffeeii.jpg

http://www.ffeeii.com第一个参数,网页地址

ffeeii.jpg 截图网页名称

其它说明:对于页面lazyload的,解决办法很简单。2秒执行

window.setTimeout(function () {
    page.render(output);
    phantom.exit();
}, 2000);

指定截图网页大小

page.viewportSize = { width: 1200, height: 1000 };

完整的网页截图代码

var page = require('webpage').create();
//设置请求userAgent
//page.settings.userAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.86 Safari/537.36";

//指定浏览器大小
//page.viewportSize = { width: 1200, height: 1000 };
page.open('http://www.ffeeii.com', function(status) {
    console.log("Status: " + status);
    if(status === "success") {
        //截取800x600的大小
        //page.clipRect = { top: 0, left: 0, width: 800, height: 600 };

        window.setTimeout(function () 
        {
            //quality 指定网页保存质量0-100
            page.render("ffeeii.jpg",{format: 'jpeg', quality: '80'});
phantom.exit();
        }, 1000);       
    }
    
});

Status: success