当前位置: 首页 > 面试题库 >

无头浏览器在自动化方面的差异

梁丘远航
2023-03-14
问题内容

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

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


问题答案:

浏览器

一个 浏览器是一个应用程序,它提供了一种方法来看待和相互作用与所有的万维网上的信息。从技术上讲,浏览器 (也称为 Web浏览器Internet浏览器)是一种客户端程序,该客户端程序使用HTTP(超文本传输​​协议)来代表整个浏览器用户向Internet上的Web服务器发出请求

无头浏览器

模拟浏览器 也是一个_Web浏览器_,但没有一个图形用户界面(GUI),但是可以通过编程得到控制,其可广泛用于 自动化 , _测试_和其它目的。

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

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

无头浏览器的优势

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

  • 使用 无头浏览器的 绝对优势是它们通常比真实的浏览器快。之所以要更快,是因为我们没有启动 浏览器GUI, 并且可以绕开真实浏览器加载 CSSJavaScript 以及打开和呈现HTML DOM的所有时间。
  • 在性能方面,使用无头浏览器通常可以将性能提高 215倍
  • 在搜寻网站时,您不必一定要手动启动网站。因此,您可以无忧无虑地访问网站,而只需抓取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,以及 JavaScriptPythonRubyJavaC#HaskellObjective-CPerlPHPR (通过Selenium)支持和 BSD 3-Clause 许可证。
  • Splash:Splash是具有HTTP API的javascript呈现服务。这是一个具有HTTP API的轻量级浏览器,使用Twisted和QT在Python中实现了几乎所有的laungage绑定技术和 BSD 3-Clause 许可证。


 类似资料:
  • 我正在尝试自动化与一个网站的一些互动。我正在使用Chropath查找各种元素的绝对XPath,然后在Selenium中与它们交互。但是,有一个按钮,selenium用“消息:stale element reference:element is not attached to the page document”来响应。如果我打开一个新的chrome浏览器并导航到该按钮,Chropath会显示一个有

  • 我正在使用java和无头chrome自动化selenium自动化工具中的一个应用程序。 我的应用程序在首次登录计算机或新浏览器(chrome/mozila/IE)时需要OTP验证。一旦在机器或浏览器上验证了OTP,从下次开始它将不会请求输入OTP。登录就足够了。 由于我正在自动化的无头浏览器,我想我可以通过第一次在控制台中输入OTP来提供OTP并进行验证,并且从下一次开始它可能不会要求OTP。 但

  • When webpack-dev-server is running it will watch your files for changes. When that happens it rebundles your project and notifies browsers listening to refresh. To trigger this behavior you need to ch

  • 问题内容: 我不确定硒中的脚本(自动测试)执行情况。我 想这个过程如下: 执行开始。 selenese命令转换为HTTP请求。 浏览器驱动程序的HTTP服务器接收HTTP请求。 浏览器驱动程序确定实现 命令所需的步骤。 浏览器驱动程序在浏览器上执行它们。 执行状态将发送回浏览器驱动程序的HTTP服务器,然后发送回脚本(IDE)。 我想这就是过程。请在我错的地方纠正我。 问题答案: 在大胆和在箱子里

  • 本文向大家介绍Python利用splinter实现浏览器自动化操作方法,包括了Python利用splinter实现浏览器自动化操作方法的使用技巧和注意事项,需要的朋友参考一下 利用Splinter开发浏览器自动化操作,编写代码比较简单。 案例一: 第1行 是导入Browser。 Browser是整个测试的基础,你可以把它理解为一个浏览器。 第3行 初始化一个Browser,不加参数的话默认是fir

  • 问题内容: 我正在尝试遵循Selenium Webdrive教程 http://www.toolsqa.com/selenium-webdriver/headless-browser-testing-selenium- webdriver/ 有一个简单的测试,这里是步骤: 开启网页http://google.com 获取页面标题。 搜索“ Selenium” 再次检查页面标题。 从类代码示例开始,