使用PhantomJS后台web界面截图
自动化截web页面的图
一、工具介绍:
PhantomJS是一个基于webkit的JavaScript API。它使用QtWebKit作为它核心浏览器的功能,使用webkit来编译解释执行JavaScript代码。任何你可以在基于webkit浏览器做的事情,它都能做到。它不仅是个隐形的浏览器,提供了诸如CSS选择器、支持Web标准、DOM操作、JSON、HTML5、Canvas、SVG等,同时也提供了处理文件I/O的操作,从而使你可以向操作系统读写文件等。PhantomJS的用处可谓非常广泛,诸如网络监测、网页截屏、无需浏览器的 Web 测试、页面访问自动化等。
一句话,使用该工具可以在后台截web界面的图。
二、下载安装
下载路径
wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2
ubuntu安装
sudo apt-get install fontconfig
三、案例
我有的博客首页添加了一个世界各国用户访问的小工具,想着记录每天数据的变化,又不想手动操作,因此想到了它!
创建一个js文件,vim a.js,内容如下:
var page = require('webpage').create();
system = require('system');
//要打印的url地址
var address = system.args[1];
//存储文件路径和名称
var outputPng = './image.png';
//设置长宽
page.viewportSize = { width: 1280, height: 800 };
page.open(address, function(status) {
if(status !== 'success') {
console.log('Unable to load the address!');
phantom.exit();
} else {
//截图的偏移和宽高 看下面的图 会是以出截图位置以及各参数位置
page.clipRect = {
top: 186,
left: 101,
width: 855,
height: 207
};
//此文本可以通过phantomjs指令输出到文件
console.log("获得的分类统计数据已保存至文件!");
console.log("截图中......");
page.render(outputPng);
console.log("截图已保存对应路径!");
phantom.exit();
}
});
执行:
./phantomjs a.js https:/url/zqj-blog/
【注意】
若执行报错
:~/bi/phantomjs/phantomjs-2.1.1-linux-x86_64$ ./bin/phantomjs examples/hello.js
./bin/phantomjs: error while loading shared libraries: libfontconfig.so.1: cannot open shared object file: No such file or directory

请执行
sudo apt-get install libfontconfig
js文件中,page.clipRect里的四个参数指的内容看下图:

使用以下参数:

得到的截图是:

这个命令会在后台自动加载页面的js,在内存中显示出图像,并截图!
四、参考
https://www.2cto.com/kf/201708/669140.html
使用PhantomJS后台web界面截图的更多相关文章
- 用phantomjs进行web界面自动化测试的几个注意点
貌似我以前说过不少界面自动化测试的坏话,哈哈.最近接触了phantomjs,发现用它进行web界面测试也挺有意思的,下面举几个我使用过程中发现的注意点. 1.需要指定phantomjs位置,否则使用时 ...
- Web界面和Winform界面生成,代码生成工具
在上面一篇随笔<代码生成工具之界面快速生成>介绍了代码生成工具Database2Sharp的界面生成操作,其中介绍了Web界面(包括列表界面.内容显示.内容编辑界面的生成,另外还介绍了Wi ...
- Confluence 6 管理员联系表单的后台配置界面
管理员联系表单的后台配置界面截图和配置. 对输入的数据进行编辑和选择是否启用发送电子邮件给管理员 https://www.cwiki.us/display/CONFLUENCEWIKI/Configu ...
- 使用phantomjs进行无界面UI自动化测试
PhantomJS(http://phantomjs.org/) 是一个基于WebKit的服务器端JavaScript API.它全面支持web而不需浏览器支持,其快速.原生支持各种Web标准:DOM ...
- 基于MVC4+EasyUI的Web开发框架经验总结(10)--在Web界面上实现数据的导入和导出
数据的导入导出,在很多系统里面都比较常见,这个导入导出的操作,在Winform里面比较容易实现,我曾经在之前的一篇文章<Winform开发框架之通用数据导入导出操作>介绍了在Winform ...
- 使用phantomjs对页面进行截图
本文章参考了使用phantomjs操作DOM并对页面进行截图需要注意的几个问题 及 phantomjs使用说明 这两篇文章,初次接触phantomjs的童鞋可以去看下这两篇原文 在学习中可以看下 ph ...
- Django后台管理界面
之前的几篇记录了模板视图.模型等页面展示的相关内容,这篇主要写一下后台admin管理界面的内容. 激活管理界面 Django管理站点完全是可选择的,之前我们是把这些功能给屏蔽掉了.记得上篇中Djang ...
- 使用Bootstrap+metisMenu完成简单的后台管理界面
零. 写在前面 作者最近在一个小项目中需要写后台管理界面,在互联网上绕了一圈,最后决定使用Bootstrap+metisMenu来完成.理由1:Bootstrap是目前流行的前端框架,风格简约,简单易 ...
- Web界面的服务器监测工具(转载)
企业服务器对于企业业务持续性意义重大,系统管理员需要密切关注企业服务器以确保一切正常运行.当发现问题的时候,他们需要知道问题开始出现时的状况,因此调查可以重点放在问题出现的时候,这就意味着定期记录信息 ...
随机推荐
- Django2.0版本以上与pymsql 不匹配问题以及解决方法
Django2.0版本以上与pymsql 不匹配问题以及解决方法 Django 2.0 以上 如果使用pymysql0.93,需要一下两步操作: # 1 第一次报错信息: File "D:\ ...
- JDK10、JDK11、JDK12新特性
JDK10新特性 1.var声明变量 很多人抱怨Java是一种强类型,需要引入大量的样板代码.甚至在这些情况下,给定好变量名,通常很清楚发生了什么,明显类型声明往往被认为是不必要的.许多流行的编程语言 ...
- sklearn聚类评价指标
sklearn中的指标都在sklearn.metric包下,与聚类相关的指标都在sklearn.metric.cluster包下,聚类相关的指标分为两类:有监督指标和无监督指标,这两类指标分别在skl ...
- 微信小程序环境配置和开发!!
1.登陆微信公众平台小程序,下载 普通小程序开发者工具.或者 小游戏开发者工具. 2.新建项目需要填以下几点,然后初始demo如下,注意rpx是分成750份的单位. 3.点击预览,用微信扫描二维码,代 ...
- D2Admin基本使用
目录 d2-admin基本使用 1 安装 1.1 全局安装 d2-admin 1.2 创建项目 1.3 启动项目 1.4 注意事项 2 修改框架 title 和 logo 2.1 修改 title 2 ...
- 如何修改被readonly修饰的属性
结论: 1.用KVC改变只读属性的值: 2.若禁止KVC方式修改只读属性的值,可在对应类重写类方法 // 该方法默认返回YES. 即在不存在满足条件的存取方法时,允许直接访问属性对应的实例变量+ (B ...
- 学点经济学:M0、M1、M2、M3,傻傻分不清?(转载)
来源:http://t.10jqka.com.cn/pid_97006727.shtml 学点经济学:M0.M1.M2.M3,傻傻分不清? 25,508人浏览 2018-08-03 11:06 常听人 ...
- 简单mvc---模拟Springmvc
1.注解篇 Auwowrited package org.aaron.mvc.annaotation; import java.lang.annotation.Documented; import j ...
- 《linux就该这么学》课堂笔记14 Apache、SELinux、虚拟主机
1.目前能够提供Web网络服务的程序有IIS(Windows系统中默认的Web服务程序,是一款图形化的网站管理工具).Nginx和Apache(RHEL 7系统中默认的Web服务程序)等. Apach ...
- Linux操作系统的日志管理之rsyslog实战案例
Linux操作系统的日志管理之rsyslog实战案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.日志介绍 1>.什么是日志 历史事件: 时间,地点,人物,事件 日志级 ...