让 Headless Chrome 与 Capybara 一起工作



我有点卡住了,我按照思想机器人教程进行操作,一切"看起来"正确: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(,那么请继续删除它们,直到它被安装。

相关内容

  • 没有找到相关文章

最新更新