PhantomJS - 概述

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

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

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

PhantomJS 不支持 Flash 或视频,因为它需要插件,并且很难在命令行上支持它们。

PhantomJS 的功能

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

页面自动化

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

屏幕截图

PhantomJS 有助于对指定页面进行屏幕截图,并将其保存为 PNG、JPEG、PDF 和 GIF 等各种格式的图像。借助屏幕截图,它可以轻松帮助确保 Web 内容正常。

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

无头测试

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

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

网络监控

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

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