让 Headless Chrome 与 Capybara 一起工作
Getting Headless Chrome to work with Capybara
我有点卡住了,我正在关注 Thoughtbots 教程以及所有内容 "looks" 正确:https://robots.thoughtbot.com/headless-feature-specs-with-chrome
- 我已经验证我的 Chrome 是版本 59
- 我用brew安装了chrome驱动,验证至少是2.3版本
我的 rails_helper
文件(相关部分)如下所示:
Capybara.register_driver :chrome do |app|
Capybara::Selenium::Driver.new(app, browser: :chrome)
end
Capybara.register_driver :headless_chrome do |app|
capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
'chromeOptions:' => { args: %w(headless disable-gpu) }
)
Capybara::Selenium::Driver.new app,
browser: :chrome,
desired_capabilities: capabilities
end
Capybara.javascript_driver = :headless_chrome
使用 chromedriver-helper
gem 确实允许我使用 chrome 就好了,但它不会保持无头状态。此外,当我检查它时,我会在 chrome 上确认自动化测试使用没有 --headless
标志出现。
现在使用 brew install chromedriver
给我的是:
Selenium::WebDriver::Error::WebDriverError:
unable to connect to chromedriver 127.0.0.1:9515
所以好像有些不对劲....它似乎不知道如何连接 brew chrome驱动程序版本..但是大多数教程似乎没有说任何关于使用 brew 链接任何东西的内容版本。
有什么想法吗? (我 运行 在 Rails 4.1 顺便说一句)
由于您正在使用 brew
安装 chromedriver,因此您需要完全删除 chromedriver-helper
及其安装的所有二进制文件和存根文件。这是因为 bundler
将已安装的 binaries/stubs 添加到 brew 安装的 chromedriver 版本之前的路径中,因此隐藏了它。您可以使用
bundle exec which chromedriver
找出您 运行 测试时实际使用的 chromedriver。如果它不是 brew
(通常是 /usr/local/bin/chromedriver)安装的那个,那么继续删除它们直到它被安装。
我有点卡住了,我正在关注 Thoughtbots 教程以及所有内容 "looks" 正确:https://robots.thoughtbot.com/headless-feature-specs-with-chrome
- 我已经验证我的 Chrome 是版本 59
- 我用brew安装了chrome驱动,验证至少是2.3版本
我的 rails_helper
文件(相关部分)如下所示:
Capybara.register_driver :chrome do |app|
Capybara::Selenium::Driver.new(app, browser: :chrome)
end
Capybara.register_driver :headless_chrome do |app|
capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
'chromeOptions:' => { args: %w(headless disable-gpu) }
)
Capybara::Selenium::Driver.new app,
browser: :chrome,
desired_capabilities: capabilities
end
Capybara.javascript_driver = :headless_chrome
使用 chromedriver-helper
gem 确实允许我使用 chrome 就好了,但它不会保持无头状态。此外,当我检查它时,我会在 chrome 上确认自动化测试使用没有 --headless
标志出现。
现在使用 brew install chromedriver
给我的是:
Selenium::WebDriver::Error::WebDriverError:
unable to connect to chromedriver 127.0.0.1:9515
所以好像有些不对劲....它似乎不知道如何连接 brew chrome驱动程序版本..但是大多数教程似乎没有说任何关于使用 brew 链接任何东西的内容版本。
有什么想法吗? (我 运行 在 Rails 4.1 顺便说一句)
由于您正在使用 brew
安装 chromedriver,因此您需要完全删除 chromedriver-helper
及其安装的所有二进制文件和存根文件。这是因为 bundler
将已安装的 binaries/stubs 添加到 brew 安装的 chromedriver 版本之前的路径中,因此隐藏了它。您可以使用
bundle exec which chromedriver
找出您 运行 测试时实际使用的 chromedriver。如果它不是 brew
(通常是 /usr/local/bin/chromedriver)安装的那个,那么继续删除它们直到它被安装。