PhantomJS 据称是无头浏览器,因为执行JavaScript代码时不涉及浏览器.浏览器显示中不会显示执行,但会在命令行提示符下显示.诸如 CSS处理,DOM操作,JSON,Ajax,Canvas,SVG,等功能都将在命令提示符下完成. PhantomJS没有GUI,因此,它的所有执行都发生在命令行.
使用PhantomJS,我们可以写入文件,读取文件内容或上传文件,进行屏幕截图,将网页转换为PDF格式等等.使用无头浏览器,您可以获得所有浏览器行为,即 Cookie,Http请求方法即 GET/POST,清除Cookie,删除Cookie 等,重新加载页面导航到另一个页面.
PhantomJS使用的WebKit具有与着名浏览器类似的浏览环境 - 谷歌浏览器,Mozilla Firefox,Safari等.它还提供了一个很多JavaScript API,它有助于截取屏幕,上传文件,写入文件,阅读文件,与网页交互等等.
PhantomJS不支持Flash或视频,因为它需要插件,并且很难在命令行上支持它.
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允许检查网络流量;它适用于对网络行为和性能进行各种分析.
PhantomJS可用于收集有关实时环境中网页性能的数据. PhantomJS可与 Yslow 等工具一起使用,以收集任何网站的效果指标.