gpt4 book ai didi

selenium - headless (headless)浏览器在自动化方面的差异

转载 作者:行者123 更新时间:2023-12-02 08:02:56 27 4
gpt4 key购买 nike

主要区别在于,基于GUI和非GUI(Headless)执行。

我正在寻找所有Headless浏览器之间的差异,但是很遗憾,我没有找到任何差异。我一个接一个地经历,这使我更加困惑。如果有人可以分享具有差异的简短信息,那就太好了,这很清楚。

最佳答案

浏览器

Browser是一个应用程序,提供了一种查看和与万维网上的所有信息进行交互的方式。从技术上讲,Browser(或者称为Web浏览器或Internet浏览器)是一种客户端程序,该客户端程序使用HTTP(超文本传输​​协议)来代表浏览器用户对Internet上的Web服务器进行请求。



无头浏览器

无头浏览器也是Web浏览器,但没有图形用户界面(GUI),但可以通过编程方式进行控制,可以广泛用于自动化,测试和其他目的。



为什么要使用无头浏览器?

使用无头浏览器有很多优点和缺点。使用无头浏览器对于浏览Web可能不是很有帮助,但是对于自动化任务和测试来说却很棒。



无头浏览器的优势

使用无头浏览器有很多优点。一些tham如下:


使用无头浏览器的绝对优势是它们通常比真实的浏览器快。之所以要更快,是因为我们没有启动浏览器GUI,并且可以绕开真实浏览器加载CSS,JavaScript以及打开和呈现HTML DOM所花费的所有时间。
在性能方面,使用无头浏览器通常可以将性能提高2到15倍。
使用Scraping Websites时,您不必一定要手动启动网站。因此,您可以无忧无虑地访问网站,而只需抓取HTML。您无需渲染完整浏览器即可。
许多开发人员使用无头浏览器来对其网站和移动应用程序的代码更改进行单元测试。能够从命令行执行所有这些操作而无需手动刷新或启动浏览器,可以为他们节省很多精力。




当您可能不想使用无头浏览器时

有多种原因导致您选择使用Real Browser而不是Headless Browser的原因。几个实例:


您需要模仿真实用户。
您需要直观地查看测试运行。
如果您需要进行大量调试,那么无头调试可能会很困难。




哪种无头浏览器更好?

正如您正确指出的那样...主要区别在于在GUI基和非GUI基(无头)上的执行...,因此从测试角度看,很多情况将取决于任何特定浏览器在幕后实现的Browser Engine 。例如,以下是一些浏览器引擎,它们可以完全呈现​​网页或在虚拟DOM中运行JavaScript。


Chromium Embedded Framework: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是一个无头WebKit,可使用JavaScript API编写脚本。它具有对各种Web标准的快速本机支持:DOM处理,CSS选择器,JSON,Canvas和SVG,以及JavaScript,Python,Ruby,Java,C#,Haskell,Objective-C,Perl,PHP和R(通过Selenium )支持和BSD 3-条款许可。
Splash:Splash是具有HTTP API的javascript呈现服务。这是一个带有HTTP API的轻量级浏览器,使用Twisted和QT在Python中实现了几乎所有的laungage绑定技术和BSD 3-Clause许可证。


您可以在Which drivers support “no-browser”/“headless” testing?中找到相关的讨论

关于selenium - headless (headless)浏览器在自动化方面的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53083952/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com