msm*_*114 4 ruby-on-rails capybara selenium-chromedriver
我有点停滞不前,我遵循了思想机器人教程,一切都“看起来”正确了:https ://robots.thoughtbot.com/headless-feature-specs-with-chrome
我的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
Run Code Online (Sandbox Code Playgroud)
使用chromedriver-helper宝石确实可以让我很好地使用铬,但是它不会无所事事。另外,当我检查它时,我会在镶边上确认自动化测试使用了没有--headless标志出现。
现在使用它给我的brew install chromedriver是:
Selenium::WebDriver::Error::WebDriverError:
unable to connect to chromedriver 127.0.0.1:9515
Run Code Online (Sandbox Code Playgroud)
所以似乎有些不对劲……。似乎不知道如何连接brew chromedriver版本。。但是,大多数教程似乎都没有说任何有关使用brew版本连接任何东西的事情。
有任何想法吗?(我在Rails 4.1 btw上运行)
由于您是brew用来安装chromedriver的,因此您需要完全删除chromedriver chromedriver-helper以及它已安装的所有二进制文件和存根。这是因为bundler将安装的二进制文件/存根添加到brew安装的chromedriver版本之前的路径中,因此将其隐藏。您可以使用
bundle exec which chromedriver
Run Code Online (Sandbox Code Playgroud)
在运行测试时找出实际使用的是chromedriver。如果不是brew(通常是/ usr / local / bin / chromedriver)安装的那个,请继续删除它们直到安装为止。
| 归档时间: |
|
| 查看次数: |
975 次 |
| 最近记录: |