PhantomJS - 概述


PhantomJS被称为无头浏览器,因为在执行 JavaScript 代码时没有浏览器的参与。执行不会在浏览器显示中看到,而是在命令行提示符中看到。CSS 处理、DOM 操作、JSON、Ajax、Canvas、SVG等功能都将在命令提示符下处理。PhantomJS 没有 GUI,因此它的所有执行都在命令行中进行。

使用 PhantomJS,我们可以写入文件、读取文件内容或上传文件、截屏、将网页转换为 pdf 等等。使用无头浏览器,您可以获得所有浏览器Behave(即Cookie)、Http 请求方法(即GET /POST)、清除 Cookie、删除 Cookie等、重新加载页面、导航到不同页面

PhantomJS使用WebKit,它具有与著名浏览器类似的浏览环境——Google Chrome、Mozilla Firefox、Safari等。它还提供了大量的JavaScript API,有助于截屏、上传文件、写入文件、读取文件、与网页交互等。

PhantomJS 不支持 Flash 或 Video,因为它需要插件,并且很难在命令行上支持相同的功能。

PhantomJS的特点

现在让我们了解 PhantomJS 提供的功能。

页面自动化

PhantomJS 允许您借助其 API 读取页面内容。它可以帮助操作 DOM,使用外部库来执行所需的任务。

屏幕截图

PhantomJS 有助于截取指定页面的屏幕截图,并将其保存为各种格式的图像,如 PNG、JPEG、PDF 和 GIF。借助屏幕截图,可以轻松帮助确保网页内容良好。

PhantomJS 提供属性和方法,允许开发人员调整屏幕截图的大小并指定他们想要捕获的区域。

无头测试

PhantomJS 有助于在命令行测试 UI。同时,借助屏幕截图,可以轻松帮助查找 UI 中的错误。PhantomJS 有时无法单独帮助测试。但是,它可以与其他测试库(如 Mocha、Yoeman 等)一起包装。您可以借助 PhantomJS 上传文件并提交表单。

PhantomJS 可用于测试跨站点的登录并确保安全性不会受到损害。PhantomJS可以与CasperJS、Mocha、Qunit等其他工具一起使用,使测试更加强大。

网络监控

PhantomJS 的重要功能之一是使用可用的 API 来监控网络连接。PhantomJS 允许检查网络流量;适合对网络Behave和性能进行各种分析。

PhantomJS 可用于收集有关实时环境中网页性能的数据。PhantomJS 可以与Yslow等工具一起使用来收集任何网站的性能指标。