繁体   English   中英

使Headless Chrome与Capybara配合使用

[英]Getting Headless Chrome to work with 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 gem可以使我很好地使用chrome,但是它不会chromedriver-helper 另外,当我检查它时,我会在镶边上确认自动化测试使用了--headless标志。

现在,使用brew install chromedriver给我的是:

Selenium::WebDriver::Error::WebDriverError:
       unable to connect to chromedriver 127.0.0.1:9515

所以似乎有些不对劲。。。。。。。。。。。。。。。。。。。。。。。。。。。。

有任何想法吗? (我在Rails 4.1 btw上运行)

由于您使用brew安装chromedriver,因此需要完全删除chromedriver-helper及其已安装的所有二进制文件和存根。 这是因为bundler会将安装的二进制文件/存根添加到brew安装的chromedriver版本之前的路径中,因此会将其隐藏。 您可以使用

bundle exec which chromedriver

在运行测试时找出实际使用的是chromedriver。 如果不是brew安装的那个(通常是/ usr / local / bin / chromedriver),请继续删除它们直到安装为止。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM