簡體   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