var page = require('webpage').create(); var url = 'http://phantomjs.org/'; page.open(url, function (status) { //Page is loaded! phantom.exit(); });
不过随着其他基于Node.JS的Web桌面程序框架 electron、node-webkit(nw) 的出现,PhantomJS的热度出现下降。最近Phantom.js的主要维护者宣布退出。项目前景不明。
作者|David Iffland
Slobodin在Google论坛上发帖表示,鉴于Chrome 59推出了无头浏览特性,他认为没有理由再继续维护Phantom.js。
Phantom.js因其无头特性而常用于网站的自动化测试中。它基于WebKit,可执行DOM操作、抓取截屏等一系列任务。
现在Google通过推出Chrome 59提供了类似的产品,并有望被开发人员广泛采用。Paul Irish(译者注:著名的前端开发者,现负责Google Chrome的开发者工具)曾联系过Phantom.js团队,看他们是否有兴趣使用Chromium作为运行时。但Slobodin指出,“PhantomJS严重依赖于Qt和QtWebKit,采用Chrome作为新的运行时绝非易事”。他还补充道:“我们对此并不具有资源。Chromium代码库比我们当前的代码树更为复杂和庞大”。
Ariya Hidayat是PhantomJS的创建者。看上去他对运行于Chromium上的PhantomJS心存希望:
我确信Chromium终将成为很好的PhantomJS后端。PhantomJS应该绑定自己的引擎,能看到PhantomJS恢复其原生状态将是一件非常有意思的事情(项目在启动时只是一个使用QtWebKit的简单应用)。最好其它引擎(例如Gecko、Edge等)也能着手去提供类似的库,使得PhantomJS用户可以在各引擎间进行切换。
从GitHub的贡献上看,Slobodin自2015年中期起就接管了PhantomJS的首要开发人员职责,在此之前的主要贡献来自于Hidayat。要让PhantomJS项目继续下去,就需要找到能进入到项目中并担负起活跃开发职责的贡献者。Hidayat对此还是相当乐观的。他在InfoQ的采访中说项目将会继续下去:
近些年Vitaly做出了很好的工作。我们只是需要设法去应对这一状况。希望在我们这些贡献者之中,或是有新的贡献者,能继续担负起Vitaly的繁重工作。
当然,继任的Phantom.js维护者将会面临重大挑战。截止撰写本文时,PhantomJS尚有1801个开放问题。
看上去Slobodin的GitHub代码库“Phantomium”似乎暗示了他的下一步工作。虽然Phantomium代码库内容尚不足以撑起门面,但是Slobodin已描述该项目是一个“使用Chrome实现PhantomJS的全新项目(具有相同的API)”。
Slobodin所发原贴链接:https://groups.google.com/forum/m/#!topic/phantomjs/9aI5d-LDuNE
英文原文:https://www.infoq.com/news/2017/04/Phantomjs-future-uncertain
相关阅读:
从PhantomJS迁移到node-webkit:自动化测试框架简单比较