用于自动化的无头浏览器的区别
Difference of Headless browsers for automation
主要区别在于,基于 GUI 和非 GUI(无头)执行。
我正在寻找所有 Headless 浏览器之间的区别,但不幸的是我没有找到任何区别。我一个一个地经历,这让人更加困惑。如果有人可以分享有差异的简短信息,那就太好了,这会让事情变得清晰。
浏览器
A Browser is an application program that provides a way to look at and interact with all the information on the World Wide Web. Technically a Browser,也称为 Web 浏览器 或 Internet 浏览器,是一个使用 HTTP (超文本传输协议)代表浏览器用户向整个 Internet 的 Web 服务器发出请求。
无头浏览器
A Headless Browser 也是一个 Web Browser 但没有图形用户界面 (GUI) 但可以通过编程方式控制广泛用于自动化、测试和其他目的。
为什么要使用无头浏览器?
使用无头浏览器有很多优点和缺点。使用无头浏览器可能对浏览 Web 不是很有帮助,但对于 自动化 任务和测试来说,它 很棒 .
无头浏览器的优势
使用无头浏览器有很多优点。其中部分如下:
- 使用 Headless Browser 的一个明显优势是它们通常比真正的浏览器更快。速度更快的原因是因为我们没有启动 浏览器 GUI 并且可以绕过真正的浏览器加载 CSS[=105] 的所有时间=], Java编写脚本 并打开并渲染 HTML DOM.
- 在性能方面,使用无头浏览器时,您通常可以看到 2x 到 15x 更快的性能。
- 虽然 Scraping Websites 您不一定希望手动启动网站。因此,您可以无头访问该网站,只需抓取 HTML。您不需要呈现 完整浏览器 即可。
- 许多开发人员使用 Headless Browser 进行 单元测试 代码更改 他们的网站和移动应用程序。无需手动刷新或启动浏览器即可从命令行执行所有这些操作,为他们节省了大量精力。
当您可能不想使用无头浏览器时
您选择使用 Real Browser 而不是 Headless Browser 的原因有很多。几个实例:
- 你需要模仿真实用户。
- 您需要直观地看到测试运行。
- 如果您需要进行大量调试,无头调试可能会很困难。
哪些无头浏览器更好?
正如您正确指出的 ...主要区别在于基于 GUI 的执行和基于非 GUI 的执行(无头)...,因此来自 Testing Perspective 很大程度上取决于任何特定浏览器在后台实现的 Browser Engine。例如,这里有一些 浏览器引擎 可以完全呈现网页或 运行 Java 虚拟 DOM.[=20= 中的脚本]
- Chromium Embedded Framework:CEF 是一个基于 Google Chromium 项目的开源项目,带有 JavaScript 支持和 BSD 许可证。
- Erik:Erik 是一个 Headless Browser,基于 Kanna 和 WebKit Swift 支持和 MIT 许可证。
- jBrowserDriver:jBrowserDriver 是 Selenium 兼容的无头浏览器,它是 基于 WebKit 并通过 Java 绑定支持和 Apache License v2.0[= 与 Selenium Server 一起工作许可证。
- PhantomJS: PhantomJS is a headless WebKit scriptable with a JavaScript API. It has fast and native support for various web standards: DOM handling, CSS selector, JSON, Canvas, and SVG with JavaScript, Python, Ruby, Java, C#, Haskell, Objective-C, Perl, PHP and R(via Selenium) 支持和 BSD 3-Clause 许可证。
- Splash:Splash 是一个 javascript 带有 HTTP API 的呈现服务。它是一个带有 HTTP API 的轻量级浏览器,在 Python 中使用 Twisted 和 QT 以及几乎所有的 laungage 绑定技术和 BSD 3-Clause 许可证实现。
您可以在
中找到相关讨论
主要区别在于,基于 GUI 和非 GUI(无头)执行。
我正在寻找所有 Headless 浏览器之间的区别,但不幸的是我没有找到任何区别。我一个一个地经历,这让人更加困惑。如果有人可以分享有差异的简短信息,那就太好了,这会让事情变得清晰。
浏览器
A Browser is an application program that provides a way to look at and interact with all the information on the World Wide Web. Technically a Browser,也称为 Web 浏览器 或 Internet 浏览器,是一个使用 HTTP (超文本传输协议)代表浏览器用户向整个 Internet 的 Web 服务器发出请求。
无头浏览器
A Headless Browser 也是一个 Web Browser 但没有图形用户界面 (GUI) 但可以通过编程方式控制广泛用于自动化、测试和其他目的。
为什么要使用无头浏览器?
使用无头浏览器有很多优点和缺点。使用无头浏览器可能对浏览 Web 不是很有帮助,但对于 自动化 任务和测试来说,它 很棒 .
无头浏览器的优势
使用无头浏览器有很多优点。其中部分如下:
- 使用 Headless Browser 的一个明显优势是它们通常比真正的浏览器更快。速度更快的原因是因为我们没有启动 浏览器 GUI 并且可以绕过真正的浏览器加载 CSS[=105] 的所有时间=], Java编写脚本 并打开并渲染 HTML DOM.
- 在性能方面,使用无头浏览器时,您通常可以看到 2x 到 15x 更快的性能。
- 虽然 Scraping Websites 您不一定希望手动启动网站。因此,您可以无头访问该网站,只需抓取 HTML。您不需要呈现 完整浏览器 即可。
- 许多开发人员使用 Headless Browser 进行 单元测试 代码更改 他们的网站和移动应用程序。无需手动刷新或启动浏览器即可从命令行执行所有这些操作,为他们节省了大量精力。
当您可能不想使用无头浏览器时
您选择使用 Real Browser 而不是 Headless Browser 的原因有很多。几个实例:
- 你需要模仿真实用户。
- 您需要直观地看到测试运行。
- 如果您需要进行大量调试,无头调试可能会很困难。
哪些无头浏览器更好?
正如您正确指出的 ...主要区别在于基于 GUI 的执行和基于非 GUI 的执行(无头)...,因此来自 Testing Perspective 很大程度上取决于任何特定浏览器在后台实现的 Browser Engine。例如,这里有一些 浏览器引擎 可以完全呈现网页或 运行 Java 虚拟 DOM.[=20= 中的脚本]
- Chromium Embedded Framework:CEF 是一个基于 Google Chromium 项目的开源项目,带有 JavaScript 支持和 BSD 许可证。
- Erik:Erik 是一个 Headless Browser,基于 Kanna 和 WebKit Swift 支持和 MIT 许可证。
- jBrowserDriver:jBrowserDriver 是 Selenium 兼容的无头浏览器,它是 基于 WebKit 并通过 Java 绑定支持和 Apache License v2.0[= 与 Selenium Server 一起工作许可证。
- PhantomJS: PhantomJS is a headless WebKit scriptable with a JavaScript API. It has fast and native support for various web standards: DOM handling, CSS selector, JSON, Canvas, and SVG with JavaScript, Python, Ruby, Java, C#, Haskell, Objective-C, Perl, PHP and R(via Selenium) 支持和 BSD 3-Clause 许可证。
- Splash:Splash 是一个 javascript 带有 HTTP API 的呈现服务。它是一个带有 HTTP API 的轻量级浏览器,在 Python 中使用 Twisted 和 QT 以及几乎所有的 laungage 绑定技术和 BSD 3-Clause 许可证实现。
您可以在