我不能让Capybara在我的许多集成测试中工作.
当我访问某些页面时,我得到以下html:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
因此,当我尝试使用has_content()选择器时,它会引发以下错误:
Failure/Error: page.should have_content("HELLO") Capybara::ElementNotFound: Unable to find xpath "/html"
我可以访问的应用程序的某些页面很好,但其他一些我不能.甚至有些页面可以在某些地方使用,而不是在其他地方使用:
require 'spec_helper' describe HomeController do it "shows the website description" do visit root_path puts page.html.length # ==> 108 (no html) ... end end require 'spec_helper' describe FlowsController do it "should do stuff" do visit root_path puts page.html.length # ==> 4459,works even if the exact same one didn't work in home_controller_spec! visit flows_path puts page.html.length # ==> 3402,works visit new_user_session_path puts page.html.length # ==> 3330,works within("form#new_user") do fill_in 'Email',:with => 'email@example.com' fill_in 'Password',:with => 'password' click_on 'Sign in' end puts page.html.length # ==> 108,No html end end
我在this post中读到,这是在同时使用Capybara和webrat时可能发生的错误.但我根本不使用webrat,我仍然得到错误……
这是我的Gemfile:
source 'https://rubygems.org' gem 'rails','3.2.6' gem 'pg' gem 'thin' gem 'devise' # Gems used only for assets and not required # in production environments by default. group :assets do gem 'sass-rails','~> 3.2.3' gem 'coffee-rails','~> 3.2.1' gem 'uglifier','>= 1.0.3' end # Add rspec for testing group :test,:development do gem "rspec-rails","~> 2.0" gem "capybara" gem "factory_girl_rails" end gem 'jquery-rails'
解决方法
尝试传递一个String来描述,而不是Controller类
describe "whatever" do ... end
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。