gpt4 book ai didi

python - Selenium ChromeDriver 无法识别新编译的 Headless Chromium(Python)

转载 作者:太空狗 更新时间:2023-10-29 17:18:54 24 4
gpt4 key购买 nike

我正在尝试将新的 (2016) headless 版本的 Chromium 与 Selenium/ChromeDriver 一起使用(过去,我将 Firefox 与 xfvb 一起使用,但这有望好得多)。

我根据找到的说明从源代码(我没有找到任何预构建的二进制文件)编译了一个 headless 版本的 Chromium here然后我使用以下代码通过 Selenium 启动它:

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

l_option = Options()
l_option.add_argument('headless')
l_option.add_argument('disable-notifications')
l_option.binary_location = '/home/fi11222/Headless_Chromium/headless_shell'
l_driver = webdriver.Chrome(chrome_options=l_option)

相同的代码适用于标准 Chrome (如果我删除 binary.location 选项)

然而,我收到以下错误:

selenium.common.exceptions.WebDriverException: Message: unknown error: unrecognized Chrome version: HeadlessChrome/59.0.3032.0
(Driver info: chromedriver=2.27.440175 (9bc1d90b8bfa4dd181fbbf769a5eb5e575574320),platform=Linux 4.4.0-53-generic x86_64)

显然,headless chromium 二进制文件是使用 ChromeDriver 无法识别的版本 ID 编译的。帮助!!

环境:

  • 编译:Ubuntu 16.04 服务器
  • Selenium 执行:Linux Mint 18.1

最佳答案

this patch 起,ChromeHeadless 被 chromedriver 识别(在您发布消息后创建),仅在 chromedriver 2.29(2017 年 4 月发布)后可用。确保您在 PATH 中有这个 chromedriver 可执行文件,并且 Selenium 正在选择它而不是您可能拥有的任何其他 chromedriver。

此外,请注意 - 根据 headless Chrome documentation - 你需要再传递两个标志:

l_option.add_argument('remote-debugging-port=9222')
l_option.add_argument('disable-gpu')

至于 headless Chrome 的预构建二进制文件 - 该选项自 Chrome 57 起可用,因此当前通过官方 Google 存储库分发的所有版本都支持它(即稳定的 Chrome 58 和不稳定的 Chrome 59)。是Chrome 59的亮点,所以在功能稳定之前,预计会有一些粗糙的边缘。

关于python - Selenium ChromeDriver 无法识别新编译的 Headless Chromium(Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42607084/

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