如何在Capybara中加载CSS和JS?

时间:2016-12-21 22:55:32

标签: ruby-on-rails ruby capybara capybara-webkit

我正在尝试为我的Rails应用程序编写集成测试。它的GUI非常复杂,因此需要进行大量的集成测试(而不是控制器或单元测试),以确保所有AJAX请求和DOM渲染都能正常工作。

我曾尝试过Capybara,Capybara-webkit,Poltergeist和Chromedriver--但他们都没有执行我的任何CSS或document.ready函数。

我已经做了大量的阅读并尝试了很多解决方案,但没有成功。我认为这可能与资产管道有关。

我不确定接下来要在哪里解决问题。

谢谢, 路易丝

1 个答案:

答案 0 :(得分:4)

就我而言,它确实与资产管道有关。

在我关闭test.rb中的资产连接后,一切正常。

test.rb:

# Debug mode disables concatenation and preprocessing of assets.
  # This option may cause significant delays in view rendering with a large
  # number of complex assets.
  config.assets.debug = true

spec_helper:

Capybara.register_driver :chrome do |app|
  Capybara::Selenium::Driver.new(app, :browser => :chrome)
end

Capybara.javascript_driver = :chrome
Capybara.asset_host = "http://localhost:3000"

排序。我需要切换到chromedriver才能找到它 - 这取决于我实际上能够看到测试驱动程序在真正的浏览器中完成它的工作,并打开Chrome javascript控制台(虽然在调试器中暂停了capybara)来捅看看发生了什么。