我有点卡住了,我按照思想机器人教程进行操作,一切"看起来"正确:https://robots.thoughtbot.com/headless-feature-specs-with-chrome
- 我已验证我的 Chrome 版本为 59 版
- 我已经使用 brew 安装了 chromedriver,并验证了它至少是 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
宝石确实可以让我很好地使用铬,但它不会保持无头状态。此外,当我检查它时,我会在铬上确认自动化测试使用没有出现--headless
标志。
它现在使用brew install chromedriver
给我的是:
Selenium::WebDriver::Error::WebDriverError:
unable to connect to chromedriver 127.0.0.1:9515
所以似乎有些不对劲。它似乎不知道如何连接Brew ChromeDriver版本。但是,大多数教程似乎都没有提到使用 brew 版本链接任何内容。
有什么想法吗?(顺便说一句,我在轨道上运行 4.1 btw(
由于您使用brew
来安装 chromedriver,因此您需要完全删除chromedriver-helper
及其安装的所有二进制文件和存根。 这是因为bundler
将已安装的二进制文件/存根添加到 brew 安装的 chromedriver 版本之前的路径中,因此会隐藏它。 您可以使用
bundle exec which chromedriver
以了解您在运行测试时实际使用的 Chrome 驱动程序。 如果它不是brew
安装的那个(通常是/usr/local/bin/chromedriver(,那么请继续删除它们,直到它被安装。