Selenium 为什么在没有GUI的情况下运行的程序/浏览器称为Headless?

Selenium 为什么在没有GUI的情况下运行的程序/浏览器称为Headless?,selenium,google-chrome,headless,google-chrome-headless,headless-browser,chromium,Selenium,Google Chrome,Headless,Google Chrome Headless,Headless Browser,Chromium,我很好奇为什么无头的意思是“没有GUI”。无头的词源是什么?头部和GUI之间似乎没有关系。在这种情况下,无头部被称为“看不见”。一只没有头的鸡,或者一家没有头的公司没有头,因此它没有视力,但是它仍然可以工作。Selenium为希望在没有浏览器ui的情况下测试代码以表示没有“用户意识”的浏览器功能的程序员提供了无头浏览器模式 第一堆柱子!啊 从的角度来看,这是一种在无头环境中运行浏览器的方法,基本上就是在不使用Chrome的情况下运行Chrome。它是一个用于自动化测试和服务器环境的工具,在这些环

我很好奇为什么无头的意思是“没有GUI”。无头的词源是什么?头部和GUI之间似乎没有关系。

在这种情况下,无头部被称为“看不见”。一只没有头的鸡,或者一家没有头的公司没有头,因此它没有视力,但是它仍然可以工作。Selenium为希望在没有浏览器ui的情况下测试代码以表示没有“用户意识”的浏览器功能的程序员提供了无头浏览器模式

第一堆柱子!啊

从的角度来看,这是一种在无头环境中运行浏览器的方法,基本上就是在不使用Chrome的情况下运行Chrome。它是一个用于自动化测试和服务器环境的工具,在这些环境中,您不需要可见的UI外壳

的概念是通过一个
--headless
运行时开关来实现的,该开关将使用一个常规的Chrome二进制文件作为headless。使用此开关启动二进制文件时,主入口点将调用无头外壳入口点,从而有效地启动该外壳而不是Chrome。为了使这成为可能,Chrome团队删除了从
Headless
Ozone
的依赖项,因为Ozone是一种构建时功能,通常不为常规Chrome构建启用。从本质上说,这意味着实施一项新的无头特定技术
WindowTreeHost
并修改各种图形和输入入口点,以在无头模式下执行适当的操作。虽然大部分代码都是特定于平台的代码,但主要目的是使shell能够使用完全独立于用户实际配置文件的内存配置文件

--headless
有三个主要变化:

  • 将Headless Shell变成一个可嵌入的库(而不是一个独立的应用程序)
  • 当使用--Headless时,主Chrome入口点应分配到Headless Shell入口点,即启动Headless Shell而不是常规Chrome UI
  • 特定于平台的更改,以避免无头模式下的窗口系统依赖性
  • 其中,随着跨平台的变化:
    • chrome/chrome\u main.cc
      :使用--headless启动时,将其分派到headlesshellmain()中
    • content/browser/compositor/gpu\u process\u transport\u factory.cc
      :在无头模式下使用软件输出设备

工具书类 两份参考资料: