本文概述
PhantomJS是一款无头WebKit, 可使用JavaScript API多平台编写脚本, 可在以下主要操作系统上使用:Windows, Mac OS X, Linux和其他Unices。它具有对各种Web标准的快速本机支持:DOM处理, CSS选择器, JSON, Canvas和SVG。
PhantomJS本身具有网站测试的许多功能, 它使你可以使用Jasmine, QUnit, Mocha, Capybara, WebDriver等框架运行功能测试。它允许你创建屏幕截图, 网站自动化, 文档处理和网络监控等。
在本文中, 我们将学习如何从Windows中的命令行操作PhantomJS并测试基本功能, 如屏幕截图, PDF生成等。
要求
- 一个用于Windows的PhantomJS发行版, 你可以在此处的官方网站的下载区域中获取最新版本。
注意:没有安装过程, 因为你将获得带有两个文件夹, examples和bin(包含phantomjs.exe)的.zip文件。
PhantomJS如何工作
想像一下像Google Chrome这样的简单网络浏览器, 准备好了吗?现在删除图形用户界面(GUI), 你将获得一个无头的浏览器, 基本上就是PhantomJS。它们非常适合以编程方式自动化和测试网页, 而PhantomJS是目前最好的无头浏览器之一。
从cmd.exe开始使用PhantomJS
解压缩下载的.zip文件后, 你将获得2个文件夹:examples和bin。在Bin中可以找到PhantomJS的可执行文件。
首先, 打开Windows终端cmd.exe并执行以下命令导航到phantomJS的bin路径:
# In this example, the bin folder is located in the desktop
# Obviously, provide your own path
cd C:\Users\sdkca\Desktop\phantomjs-2.1.1-windows\bin
注意:你可以简单地创建一个指向Phantomjs.exe位置的环境变量, 然后从控制台中的任何位置执行该变量。
现在你位于PhantomJS的路径中, 你将能够使用phantomjs轻松执行命令。
要操作phantomjs, 你将主要使用Javascript执行phantomjs命令, 该命令将JS文件的路径作为第一个参数。
phantomjs myjsfile.js
就这样 !现在, 你只需要学习如何为phantomJS编写合适的javascript。
对于你的第一次练习, 我们将截取Our Code World网站的屏幕截图。在phantomjs可执行文件的相同位置创建一个screenshot.js文件:
并在screenshot.js文件中包含以下代码:
var page = require('webpage').create();
var websiteAddress = 'http://ourcodeworld.com/';
//viewportSize being the actual size of the headless browser
page.viewportSize = { width: 1680, height: 1050 };
//the clipRect is the portion of the page you are taking a screenshot of
page.clipRect = { top: 0, left: 0, width: 1680, height: 1050 };
// Open website
page.open(websiteAddress, function(status) {
// Show some message in the console
console.log("Status: " + status);
console.log("Loaded: " + page.url);
page.render('ourcodeworld.png');
phantom.exit();
});
最后在命令提示符下执行以下命令:
phantomjs screenshot.js
等待执行, 直到看到成功消息, 然后再次打开bin文件夹。
我们的网站截图已创建, 非常好, 真的很简单吗?
已知的Windows问题
如果数据传输不正确, 请检查网络是否按预期工作。
特别是在Windows上, 默认代理设置可能会导致大量的网络延迟。解决方法是完全禁用代理, 例如通过使用–proxy-type = none命令行参数启动PhantomJS。
总结
现在你知道了PhantomJS的基本工作原理, 你将能够了解文档并发现PhantomJS必须提供的所有出色功能。
与往常一样, 我们鼓励你查阅文档以了解如何生成PDF, 远程调试等。祝你玩得开心!
评论前必须登录!
注册