Selenium 为什么在没有GUI的情况下运行的程序/浏览器称为Headless?
我很好奇为什么无头的意思是“没有GUI”。无头的词源是什么?头部和GUI之间似乎没有关系。在这种情况下,无头部被称为“看不见”。一只没有头的鸡,或者一家没有头的公司没有头,因此它没有视力,但是它仍然可以工作。Selenium为希望在没有浏览器ui的情况下测试代码以表示没有“用户意识”的浏览器功能的程序员提供了无头浏览器模式 第一堆柱子!啊 从的角度来看,这是一种在无头环境中运行浏览器的方法,基本上就是在不使用Chrome的情况下运行Chrome。它是一个用于自动化测试和服务器环境的工具,在这些环境中,您不需要可见的UI外壳 的概念是通过一个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。它是一个用于自动化测试和服务器环境的工具,在这些环
--headless
运行时开关来实现的,该开关将使用一个常规的Chrome二进制文件作为headless。使用此开关启动二进制文件时,主入口点将调用无头外壳入口点,从而有效地启动该外壳而不是Chrome。为了使这成为可能,Chrome团队删除了从Headless
到Ozone
的依赖项,因为Ozone是一种构建时功能,通常不为常规Chrome构建启用。从本质上说,这意味着实施一项新的无头特定技术
WindowTreeHost
并修改各种图形和输入入口点,以在无头模式下执行适当的操作。虽然大部分代码都是特定于平台的代码,但主要目的是使shell能够使用完全独立于用户实际配置文件的内存配置文件
--headless
有三个主要变化:
- 将Headless Shell变成一个可嵌入的库(而不是一个独立的应用程序)
- 当使用--Headless时,主Chrome入口点应分配到Headless Shell入口点,即启动Headless Shell而不是常规Chrome UI
- 特定于平台的更改,以避免无头模式下的窗口系统依赖性
- 其中,随着跨平台的变化:
:使用--headless启动时,将其分派到headlesshellmain()中chrome/chrome\u main.cc
:在无头模式下使用软件输出设备content/browser/compositor/gpu\u process\u transport\u factory.cc
工具书类 两份参考资料: