7 款出色的 PhantomJS 替代方案
既然您已了解 PhantomJS 消亡的原因,现在是时候了解一些替代方案,以便您能继续使用无头浏览器。此外,这些替代方案在过去五年中已取得长足发展,并提供了更丰富的功能。
以下是我们精选的 7 款出色的 PhantomJS 替代方案,您今天就可以开始使用:
- 无头Chrome
- Selenium
- CasperJS
- Zombie.js
- BrowserSync
- HtmlUnit
- 网页抓取API1 . 无头Chrome
无头版Chrome是我们的首选,因为Vitaly Slobodin本人曾特别推荐过它。
这款无头浏览器已被数十万开发者日常使用。PhantomJS 的各项功能和特性在无头 Chrome 中均可找到。
众所周知,Google Chrome 始终处于网页浏览器的前沿。许多浏览器,如 Opera、Vivaldi 和 Google Chrome,都是基于 Chromium 构建的。对于不了解的人来说,Chromium 是 Google 创建的一个开源浏览器。
无头版Chrome的推出恰逢PhantomJS停止维护之际。它最初作为Chrome第59版的一部分亮相。此后,每一版Chrome都内置了无头版Chrome。目前,Chrome已运行至第105版,因此我们可以知道,谷歌对无头版Chrome的实验和优化已持续了一段时间。
优点:
- 支持大量功能。
- 内存占用更低。
- 由于是无头浏览器,调试较为便捷。
- 安装相对快速简便。
- 速度更快,稳定性更高。
- 全天候支持。
- 定期更新。
缺点:
- 无头Chrome几乎完美,许多开发者更青睐它。 2. Selenium
Selenium 于 2002 年问世,至今已有约 20 年历史。它与 PhantomJS 类似,同样用于自动化 Web 应用程序,并协助测试网页的各个部分。
打开 Selenium 官网,映入眼帘的是以绿白为主色调的页面,顶部醒目地写着“Selenium 实现浏览器自动化”。网站从一开始就明确表明,该工具的核心宗旨在于自动化。
向下滚动一点,你会看到 Selenium 能为你提供的三种帮助。它们是:
- 基于浏览器的回归测试自动化。
- 创建故障复现和自动化脚本。
- 在多台机器上同时运行测试。
Selenium 通过其三大服务——Selenium WebDriver、Selenium IDE 和 Selenium Grid——来实现这三个目标。坦白说,每位开发者使用无头浏览器的理由各不相同。该网站在首页顶部对这些用途的突出展示做得非常出色。
请注意,Selenium 既有其优点,也有其缺点。
优点:
- 实现浏览器自动化。
- 提供多种服务,各司其职。
- 它是开源的,这意味着会不断进行更新
- 配置简单。
缺点:
- 若需帮助,没有专门的技术支持。
- 不支持移动应用程序。
3. CasperJS
CasperJS 是一款无头浏览器。该浏览器的主要用途是浏览、编写脚本和测试网页。CasperJS 通常用于 UI 测试,而其他无头浏览器则用于单元测试。CasperJS 可自动完成表单填写、点击链接、截屏、下载资源等众多任务。
优点:
- 高级第三方集成
- 采用 JavaScript 编写
- CasperJS 易于上手。
缺点:
4. Zombie.js
Zombie.js 是一款以惊人速度著称的无头浏览器(至少,这是他们官网上的说法)。它是一款功能完备的工具,可用于前端和后端测试。它基于 Node.js 并能完美运行于 JavaScript 环境。许多开发者青睐它,因为它是一个轻量级的框架。它能快速测试客户端代码。
优点:
- 基于 Node.js 运行,集成简单。
- 将其集成到您的框架中也相当简单。
- 速度极快。
- 轻量级。对机器造成的负载微乎其微。
缺点:
- 无法截屏
- 文档不完整。
- 没有技术支持。
- 无法加载许多网站。
5. Browsersync
Browsersync 是一款无头浏览器,但同时它又不是无头浏览器。让我解释一下。你可以按两种方式使用它:在命令行上测试网页和提取数据,或者如果你想要一个图形界面来辅助操作,这也是可以的。 Browsersync 每月下载量超过 200 万次。这是一个相当可观的数字,相信您也能猜到,既然有这么多开发者信赖它,它一定有其过人之处。像 Google 和 Adobe 这样的知名企业也都在使用 Browsersync。
优点:
- 运行迅捷且完全免费。
- 自动保存 URL。
- 支持图形用户界面(GUI)或命令行(CL)操作。
- 在 Windows、Mac OS 和 Linux 系统上运行流畅。
- 开源,因此持续更新。
- 无需浏览器插件。
- 在桌面和移动设备上运行无障碍。
缺点:
- 在 Windows 上配置 Browsersync 可能会有些棘手。
6. HtmlUnit
由 Mike Bowler 编写并采用 Apache 2.0 许可证发布的 HtmlUnit,可作为无头浏览器或无 GUI 浏览器使用。它采用 Java 编写,与 JavaScript 的兼容性极佳。
借助这款无头浏览器,您可以填写表单、点击链接,并完成浏览器所能实现的所有操作。官网表示HtmlUnit的JavaScript功能正在持续改进,这对开发者而言是个好消息。
据称它还能与复杂的 AJAX 库良好兼容,并支持 HTTP 和 HTTPS 协议。
优点:
- 免费且易于配置。
- 能有效处理复杂的库。
- 可通过 HtmlUnit 进行测试。
- 还能从网站中提取信息。
- 同样适用于Android系统。
缺点:
- 功能有限,因此对于需要丰富功能的用户来说并非理想选择。