浏览器
一个 浏览器是一个应用程序,它提供了一种方法来看待和相互作用与所有的万维网上的信息。从技术上讲,浏览器 (也称为 Web浏览器 或Internet浏览器)是一种客户端程序,该客户端程序使用HTTP(超文本传输协议)来代表整个浏览器用户向Internet上的Web服务器发出请求。
无头浏览器
甲 模拟浏览器 也是一个_Web浏览器_,但没有一个图形用户界面(GUI),但是可以通过编程得到控制,其可广泛用于 自动化 , _测试_和其它目的。
为什么要使用无头浏览器?
使用无头浏览器有很多优点和缺点。使用无头浏览器对于浏览Web可能不是很有帮助,但是对于 自动化 任务和测试来说真是 棒极了 。
无头浏览器的优势
使用 无头浏览器 有很多优点。一些tham如下:
- 使用 无头浏览器的 绝对优势是它们通常比真实的浏览器快。之所以要更快,是因为我们没有启动 浏览器GUI, 并且可以绕开真实浏览器加载 CSS , Javascript 以及打开和呈现HTML DOM的所有时间。
- 在性能方面,使用无头浏览器通常可以将性能提高 2 到 15倍 。
- 在搜寻网站时,您不必一定要手动启动网站。因此,您可以无忧无虑地访问网站,而只需抓取HTML。您无需渲染 完整浏览器 即可。
- 开发地块使用 模拟浏览器 的 单元测试 代码更改 为他们的网站和移动应用。能够从命令行执行所有这些操作而无需手动刷新或启动浏览器,可以为他们节省很多精力。
当您可能不想使用无头浏览器时
出于多种原因,您可能选择使用 Real Browser 而不是 Headless Browser 。几个实例:
- 您需要模仿真实用户。
- 您需要直观地查看测试运行。
- 如果您需要进行大量调试,那么无头调试可能会很困难。
哪种无头浏览器更好?
正如您正确指出的那样, …主要区别在于在GUI基和非GUI基(无头)上执行… ,因此从 测试角度看
,很多情况将取决于任何特定浏览器在后台实现的浏览器引擎。例如,以下是一些 浏览器引擎 ,它们可以完全呈现网页或在虚拟DOM中运行Javascript。
- Chromium嵌入式框架: CEF 是一个基于Google Chromium项目的开源项目,具有 Javascript 支持和 BSD 许可证。
- Erik: Erik 是Kanna和WebKit之上的 无头浏览器 ,具有 Swift 支持和 MIT 许可证。
- jBrowserDriver: jBrowserDriver* 是与 Selenium兼容的Headless浏览器 ,它是 基于WebKit的, 并且通过 Java 绑定支持和 Apache License v2.0 许可证与 Selenium Server一起 使用。 ***
- PhantomJS:PhantomJS是可使用Javascript API编写脚本的无头WebKit。它具有对各种Web标准的快速本机支持:DOM处理,CSS选择器,JSON,Canvas和SVG,以及 Javascript , Python , Ruby , Java , C# , Haskell , Objective-C , Perl , PHP 和 R (通过Selenium)支持和 BSD 3-Clause 许可证。
- Splash:Splash是具有HTTP API的javascript呈现服务。这是一个具有HTTP API的轻量级浏览器,使用Twisted和QT在Python中实现了几乎所有的laungage绑定技术和 BSD 3-Clause 许可证。



