Capybara + Rspec + Selenium:页面在浏览器中始终为空白

时间:2012-02-20 21:28:55

标签: ruby-on-rails selenium integration-testing capybara rspec-rails

我正在尝试与Capybara编写集成测试,但每次弹出Selenium控制的浏览器时,页面都是空白的。此外,对于像page.should have_selector('title')这样的简单断言,我会得到像

这样的错误
Failure/Error: page.should have_selector('title')
   expected following output to contain a <title/> tag:
   <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
   <html xmlns="http://www.w3.org/1999/xhtml">
   <head></head>
   <body></body>
   </html>

即,页面为空。

我正在访问一条有效的路径。如果我执行了save_and_open_page,则页面

Gemfile的相关部分是

group :test, :development do
  gem 'rspec-rails', '~> 2.4'
  gem 'nokogiri'
  gem 'webrat'

  # capybara for javascript testing
  gem 'capybara'

  # launchy allows us to do save_and_launch_page, which is very helpful during testing
  gem 'launchy'
end

该应用正在使用Rails 3.1.1。我已完成bundle install并添加了

require 'capybara/rails'
require 'capybara/rspec'

到我的spec_helper

注意,这些是集成测试,而不是控制器测试 - 我不缺少render_views

我有其他应用程序,这些东西工作正常,这让我觉得我在配置中丢失了一些东西,或者使用的是特定版本的问题。

Selenium正在尝试使用Firefox,如果重要的话,我会使用OS X Snow Leopard。

1 个答案:

答案 0 :(得分:3)

您可能想尝试从gemfile中删除webrat。我相信webrat和capybara都试图在请求目录中运行测试。