尝试连接到 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驱动程序或初始化驱动程序时要查找的系统?
修复发布在这里:https://github.com/titusfortner/webdrivers/pull/239 - 这是“webdrivers”中的一个已知问题
我有一台 apple silicon mac,但仍然有旧的(intel)chromedriver。要解决,我必须:
你可能只需要做第二步,这取决于你是否已经安装了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 所以它知道在哪里寻找 apple silicon chromedriver.
在我的 Gemfile 中是这样的:
gem "webdrivers"
所以我做到了
gem "webdrivers", ">= 5.2.0"
捆绑安装,一切正常。