无头网络浏览器是否需要 selenium WebDriver?

Do headless web browser need selenium WebDriver?

我正在尝试为我们的 selenium 使用 headless web 浏览器(例如 headless chrome)tests.Should 我必须使用 selenium WebDriver(对于 python 或 c# 绑定)?

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import os

在我们设置 Chrome 网络驱动程序实例之前,我们必须创建一个选项对象,允许我们指定我们想要启动的确切方式 Chrome。让我们告诉它我们希望浏览器无头启动并且 window 大小应该设置为 1920x1080。我们还需要 ChromeDriver 才能 运行 Chrome

chrome_options = Options()
chrome_options.add_argument("--headless")
chrome_options.add_argument("--window-size=1920x1080")

# download the chrome driver from https://sites.google.com/a/chromium.org/chromedriver/downloads and put it in the
# current directory
chrome_driver = os.getcwd() +"\chromedriver.exe"

driver = webdriver.Chrome(chrome_options=chrome_options, executable_path=chrome_driver)
driver.get("https://www.google.com")

无头Chrome

根据 Getting Started with Headless Chrome the Headless Chrome 是您不需要可见的服务器环境 UI shell.

如果您已经安装了 Chrome 59+,您可以使用 --headless 标志启动 Chrome,如下所示:

chrome \
  --headless \                   # Runs Chrome in headless mode.
  --disable-gpu \                # Temporarily needed if running on Windows.

chrome 应始终指向您安装的 Chrome。确切位置 of-coarse 因平台而异。

ChromeDriver

根据 ChromeDriver - WebDriver for Chrome,简单来说 WebDriver 是一个开源工具,用于跨多种浏览器自动测试 Web 应用程序,它提供导航功能到网页、用户输入、JavaScript 执行等等。 ChromeDriver 是实现 WebDriver 的 独立服务器 Chromium.

的协议

结论

如果您打算在无外设模式中使用Chrome浏览器(即Headless Chrome) 对于你的硒测试你必须强制使用 ChromeDriver