Webdrivers::NetworkError - Mac64 M1 - ChromeDriver

问题描述 投票:0回答:2

尝试连接到 ChromeDriver 时,我的 Capybara Selenium Webdriver 设置失败 - 看来他们发布了一个没有 M1 版本的版本,可以在 Chromedriver API 上找到

https://chromedriver.storage.googleapis.com/index.html?path=106.0.5249.61/

错误:

Webdrivers::NetworkError:
       Net::HTTPServerException: 404 "Not Found" with https://chromedriver.storage.googleapis.com/106.0.5249.61/chromedriver_mac64_m1.zip

代码:

Capybara.register_driver :headless_chrome do |app|
  options.add_argument("--disable-gpu")
  options.add_argument("--headless")
  options.add_argument("--no-sandbox")
  options.add_argument("--window-size=1920,1080")

  driver = Capybara::Selenium::Driver.new(app, browser: :chrome, options: options)

  ### Allow file downloads in Google Chrome when headless
  ### https://bugs.chromium.org/p/chromium/issues/detail?id=696481#c89 
  bridge = driver.browser.send(:bridge)

  path = "/session/:session_id/chromium/send_command"
  path[":session_id"] = bridge.session_id

  bridge.http.call(:post, path, cmd: "Page.setDownloadBehavior",
                                params: {
                                  behavior: "allow",
                                  downloadPath: "/tmp/downloads",
                                })
  ###

  driver
end

当应用程序调用

driver.browser
我得到上面的错误,那是因为它正在寻找的文件不存在。

是否可以设置特定版本的chrome驱动程序或初始化驱动程序时要查找的系统?

ruby-on-rails selenium selenium-webdriver selenium-chromedriver capybara
2个回答
0
投票

修复发布在这里:https://github.com/titusfortner/webdrivers/pull/239 - 这是“webdrivers”中的一个已知问题


0
投票

我有一台 apple silicon mac,但仍然有旧的(intel)chromedriver。要解决,我必须:

  1. 安装apple silicon chromedriver
  2. 更新 webdrivers gem 至 >= 5.2.0

你可能只需要做第二步,这取决于你是否已经安装了apple silicon chromedriver。请参阅下文了解如何检查。

检查你有苹果硅(手臂)镀铬驱动器

运行这两个命令,如果输出如下所示,您已经安装了 apple silicon chromedriver,可以跳到更新 webdrivers gem:

which chromedriver
# /opt/homebrew/bin/chromedriver

file $(which chromedriver)
# /opt/homebrew/bin/chromedriver: Mach-O 64-bit executable arm64

但是如果输出是这样的,你的chromedriver还是intel版本,需要更新到apple silicon版本:

which chromedriver
# /usr/local/bin/chromedriver

file $(which chromedriver)
# /usr/local/bin/pandoc: Mach-O 64-bit executable x86_64

安装 apple silicon chromedriver:

brew install --cask chromedriver

新终端窗口运行

which chromedriver
file $(which chromedriver)
再次检查它现在显示苹果硅(手臂)版本。

如果您收到 Apple 的错误消息:

“chromedriver”无法打开,因为 Apple 无法检查它是否有恶意软件。

只需运行this再试一次。

更新 webdrivers gem 至 >= 5.2.0

webdrivers gem 必须 >= 5.2.0 所以它知道在哪里寻找 apple silicon chromedriver.

在我的 Gemfile 中是这样的:

gem "webdrivers"

所以我做到了

gem "webdrivers", ">= 5.2.0"

捆绑安装,一切正常。

© www.soinside.com 2019 - 2024. All rights reserved.